langchain-agentx-python 0.5.3__tar.gz → 0.6.0__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 (501) hide show
  1. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/PKG-INFO +1 -1
  2. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/__init__.py +1 -1
  3. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/loop/config/agent_loop_config.py +3 -1
  4. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/loop/graph/factory.py +44 -5
  5. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/session/conversation_factory.py +1 -0
  6. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/session/factory.py +1 -0
  7. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tool_runtime/adapter.py +33 -12
  8. langchain-agentx-python-0.6.0/langchain_agentx/tool_runtime/loader.py +209 -0
  9. langchain-agentx-python-0.6.0/langchain_agentx/tool_runtime/loop_loader.py +186 -0
  10. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tool_runtime/models.py +3 -1
  11. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tool_runtime/pipeline.py +11 -0
  12. langchain-agentx-python-0.6.0/langchain_agentx/tool_runtime/process_loader.py +139 -0
  13. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tool_runtime/session_store.py +73 -6
  14. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tool_runtime/state_bridge.py +1 -6
  15. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/agent/cwd_resolution.py +12 -6
  16. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/bash/backend.py +272 -72
  17. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/bash/bash_hardening.py +2 -2
  18. langchain-agentx-python-0.6.0/langchain_agentx/tools/bash/boundary_check.py +178 -0
  19. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/bash/shell_locator.py +4 -2
  20. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/bash/tool.py +39 -16
  21. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/edit/tool.py +14 -1
  22. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/glob/tool.py +29 -9
  23. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/grep/tool.py +24 -9
  24. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/read/tool.py +20 -2
  25. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/user_message/tool.py +4 -4
  26. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/write/tool.py +14 -2
  27. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/workspace/__init__.py +17 -0
  28. langchain-agentx-python-0.6.0/langchain_agentx/workspace/boundary.py +140 -0
  29. langchain-agentx-python-0.6.0/langchain_agentx/workspace/errors.py +48 -0
  30. langchain-agentx-python-0.6.0/langchain_agentx/workspace/grant.py +34 -0
  31. langchain-agentx-python-0.6.0/langchain_agentx/workspace/l3_root_grant.py +63 -0
  32. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/workspace/resolver.py +6 -2
  33. langchain-agentx-python-0.6.0/langchain_agentx/workspace/root_grant_manager.py +228 -0
  34. langchain-agentx-python-0.6.0/langchain_agentx/workspace/tool_boundary.py +108 -0
  35. langchain-agentx-python-0.6.0/langchain_agentx/workspace/view.py +112 -0
  36. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx_python.egg-info/PKG-INFO +1 -1
  37. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx_python.egg-info/SOURCES.txt +10 -0
  38. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/pyproject.toml +1 -1
  39. langchain-agentx-python-0.5.3/langchain_agentx/tool_runtime/loader.py +0 -345
  40. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/LICENSE +0 -0
  41. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/README.md +0 -0
  42. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/command/__init__.py +0 -0
  43. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/command/builtin/__init__.py +0 -0
  44. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/command/builtin/clear.py +0 -0
  45. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/command/builtin/compact.py +0 -0
  46. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/command/builtin/memory.py +0 -0
  47. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/command/builtin/reload_plugins.py +0 -0
  48. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/command/context.py +0 -0
  49. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/command/dispatcher.py +0 -0
  50. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/command/registry.py +0 -0
  51. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/command/result.py +0 -0
  52. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/command/types.py +0 -0
  53. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/config/__init__.py +0 -0
  54. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/config/model_profiles.yaml +0 -0
  55. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/config/model_profiles.yaml.example +0 -0
  56. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/loop/__init__.py +0 -0
  57. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/loop/config/__init__.py +0 -0
  58. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/loop/config/agent_config.py +0 -0
  59. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/loop/config/model_context_resolver.py +0 -0
  60. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/loop/config/runtime_settings.py +0 -0
  61. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/loop/config/token_estimator.py +0 -0
  62. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/loop/context/__init__.py +0 -0
  63. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/loop/context/blocking_guard.py +0 -0
  64. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/loop/context/compaction_service.py +0 -0
  65. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/loop/context/message_utils.py +0 -0
  66. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/loop/context/pipeline.py +0 -0
  67. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/loop/context/settings.py +0 -0
  68. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/loop/context/stages/__init__.py +0 -0
  69. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/loop/context/stages/autocompact.py +0 -0
  70. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/loop/context/stages/base.py +0 -0
  71. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/loop/context/stages/collapse.py +0 -0
  72. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/loop/context/stages/microcompact.py +0 -0
  73. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/loop/context/stages/noop.py +0 -0
  74. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/loop/context/stages/snip.py +0 -0
  75. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/loop/context/stages/tool_result_budget.py +0 -0
  76. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/loop/context/types.py +0 -0
  77. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/loop/exit/__init__.py +0 -0
  78. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/loop/exit/exit_logic.py +0 -0
  79. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/loop/exit/reason_codes.py +0 -0
  80. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/loop/graph/__init__.py +0 -0
  81. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/loop/graph/builtin_loop_control.py +0 -0
  82. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/loop/graph/graph_edges.py +0 -0
  83. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/loop/hook/__init__.py +0 -0
  84. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/loop/hook/async_hook_runner.py +0 -0
  85. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/loop/hook/config.py +0 -0
  86. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/loop/hook/engine.py +0 -0
  87. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/loop/hook/executors/__init__.py +0 -0
  88. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/loop/hook/executors/agent.py +0 -0
  89. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/loop/hook/executors/command.py +0 -0
  90. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/loop/hook/executors/http.py +0 -0
  91. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/loop/hook/executors/prompt.py +0 -0
  92. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/loop/hook/graph_wiring.py +0 -0
  93. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/loop/hook/hook_projection.py +0 -0
  94. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/loop/hook/registry.py +0 -0
  95. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/loop/hook/trust.py +0 -0
  96. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/loop/hook/types.py +0 -0
  97. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/loop/injection/__init__.py +0 -0
  98. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/loop/injection/dedup.py +0 -0
  99. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/loop/loop_abort.py +0 -0
  100. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/loop/model/__init__.py +0 -0
  101. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/loop/model/model_node.py +0 -0
  102. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/loop/model/model_nodes.py +0 -0
  103. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/loop/model/orphan_tool_results.py +0 -0
  104. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/loop/model/retrier.py +0 -0
  105. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/loop/model/retry_bridge.py +0 -0
  106. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/loop/model/retry_events.py +0 -0
  107. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/loop/model/retry_policy.py +0 -0
  108. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/loop/model/schema_and_format.py +0 -0
  109. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/loop/model/tool_and_model_binding.py +0 -0
  110. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/loop/model/tool_call_degradation_corrector.py +0 -0
  111. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/loop/model/tool_transcript_guard.py +0 -0
  112. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/loop/prompt/__init__.py +0 -0
  113. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/loop/prompt/builder.py +0 -0
  114. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/loop/prompt/builtin.py +0 -0
  115. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/loop/prompt/compact.py +0 -0
  116. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/loop/prompt/sections.py +0 -0
  117. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/loop/prompt/session_context.py +0 -0
  118. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/loop/runtime/__init__.py +0 -0
  119. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/loop/runtime/context.py +0 -0
  120. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/loop/runtime/context_factory.py +0 -0
  121. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/loop/runtime/subagent_execution_paths.py +0 -0
  122. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/loop/subagent/__init__.py +0 -0
  123. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/loop/subagent/async_runner.py +0 -0
  124. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/loop/subagent/context.py +0 -0
  125. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/loop/subagent/fork_worktree_notice.py +0 -0
  126. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/loop/subagent/graph.py +0 -0
  127. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/loop/subagent/orchestrator.py +0 -0
  128. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/loop/subagent/progress.py +0 -0
  129. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/loop/subagent/prompt.py +0 -0
  130. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/loop/subagent/runner.py +0 -0
  131. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/loop/subagent/transcript.py +0 -0
  132. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/memory/__init__.py +0 -0
  133. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/memory/instruction/__init__.py +0 -0
  134. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/memory/instruction/loader.py +0 -0
  135. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/memory/instruction/resolver.py +0 -0
  136. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/memory/instruction/runtime.py +0 -0
  137. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/memory/instruction/sections.py +0 -0
  138. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/memory/instruction/types.py +0 -0
  139. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/memory/memdir/__init__.py +0 -0
  140. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/memory/memdir/age.py +0 -0
  141. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/memory/memdir/agent_memory.py +0 -0
  142. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/memory/memdir/extractor.py +0 -0
  143. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/memory/memdir/loader.py +0 -0
  144. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/memory/memdir/paths.py +0 -0
  145. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/memory/memdir/recall.py +0 -0
  146. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/memory/memdir/runtime.py +0 -0
  147. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/memory/memdir/scan.py +0 -0
  148. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/memory/memdir/types.py +0 -0
  149. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/memory/session/__init__.py +0 -0
  150. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/memory/session/compact_bridge.py +0 -0
  151. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/memory/session/prompts.py +0 -0
  152. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/memory/session/session_memory.py +0 -0
  153. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/observability/__init__.py +0 -0
  154. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/observability/evaluation/__init__.py +0 -0
  155. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/observability/evaluation/checkers/__init__.py +0 -0
  156. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/observability/evaluation/checkers/base.py +0 -0
  157. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/observability/evaluation/checkers/compaction.py +0 -0
  158. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/observability/evaluation/checkers/degradation.py +0 -0
  159. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/observability/evaluation/checkers/exit_quality.py +0 -0
  160. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/observability/evaluation/checkers/session_memory.py +0 -0
  161. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/observability/evaluation/checkers/tool_behavior.py +0 -0
  162. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/observability/evaluation/retention_scheduler.py +0 -0
  163. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/observability/evaluation/service.py +0 -0
  164. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/observability/evaluation/state.py +0 -0
  165. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/observability/evaluation/store.py +0 -0
  166. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/observability/events/__init__.py +0 -0
  167. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/observability/events/langchain_agentx_event_adapter.py +0 -0
  168. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/observability/logging/__init__.py +0 -0
  169. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/observability/logging/debug_burst.py +0 -0
  170. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/observability/logging/logging_config.py +0 -0
  171. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/observability/logging/logging_contract.py +0 -0
  172. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/observability/replay/__init__.py +0 -0
  173. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/observability/replay/cli.py +0 -0
  174. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/observability/replay/service.py +0 -0
  175. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/observability/replay/store.py +0 -0
  176. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/observability/replay/ui.py +0 -0
  177. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/observability/trace/__init__.py +0 -0
  178. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/observability/trace/collector.py +0 -0
  179. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/observability/trace/event_emitter.py +0 -0
  180. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/observability/trace/hook_event_emitter.py +0 -0
  181. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/observability/trace/models.py +0 -0
  182. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/observability/trace/sqlite_store.py +0 -0
  183. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/observability/trace/trace_callback.py +0 -0
  184. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/observability/trace/trace_lifecycle_collector.py +0 -0
  185. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/plugin/__init__.py +0 -0
  186. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/plugin/builtin.py +0 -0
  187. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/plugin/config.py +0 -0
  188. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/plugin/loader.py +0 -0
  189. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/plugin/manifest.py +0 -0
  190. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/plugin/registries.py +0 -0
  191. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/plugin/types.py +0 -0
  192. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/provider/__init__.py +0 -0
  193. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/provider/anthropic.py +0 -0
  194. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/provider/compatible_chat_openai.py +0 -0
  195. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/provider/env.py +0 -0
  196. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/provider/model_profile.py +0 -0
  197. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/provider/openai.py +0 -0
  198. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/session/__init__.py +0 -0
  199. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/session/agent_session.py +0 -0
  200. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/session/conversation_recovery.py +0 -0
  201. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/session/conversation_session.py +0 -0
  202. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/session/protocol.py +0 -0
  203. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/task_runtime/__init__.py +0 -0
  204. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/task_runtime/core/__init__.py +0 -0
  205. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/task_runtime/core/ids.py +0 -0
  206. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/task_runtime/core/interfaces.py +0 -0
  207. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/task_runtime/core/notification_priority.py +0 -0
  208. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/task_runtime/core/types.py +0 -0
  209. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/task_runtime/integrations/__init__.py +0 -0
  210. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/task_runtime/integrations/loop_adapter.py +0 -0
  211. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/task_runtime/integrations/loop_integration.py +0 -0
  212. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/task_runtime/integrations/prefetch_providers.py +0 -0
  213. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/task_runtime/integrations/provider_factory.py +0 -0
  214. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/task_runtime/integrations/queued_command_provider.py +0 -0
  215. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/task_runtime/integrations/sqlite_queued_command_provider.py +0 -0
  216. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/task_runtime/integrations/tool_use_summary_provider.py +0 -0
  217. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/task_runtime/orchestrator/__init__.py +0 -0
  218. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/task_runtime/orchestrator/runtime.py +0 -0
  219. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/task_runtime/output/__init__.py +0 -0
  220. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/task_runtime/output/sink.py +0 -0
  221. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/task_runtime/policy/__init__.py +0 -0
  222. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/task_runtime/policy/withhold_visibility.py +0 -0
  223. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/task_runtime/queue/__init__.py +0 -0
  224. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/task_runtime/queue/in_memory.py +0 -0
  225. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/task_runtime/skill_prefetch/__init__.py +0 -0
  226. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/task_runtime/skill_prefetch/attachments.py +0 -0
  227. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/task_runtime/skill_prefetch/models.py +0 -0
  228. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/task_runtime/skill_prefetch/provider.py +0 -0
  229. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/task_runtime/store/__init__.py +0 -0
  230. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/task_runtime/store/in_memory.py +0 -0
  231. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/task_runtime/store/sqlite_store.py +0 -0
  232. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/task_runtime/tasklist/__init__.py +0 -0
  233. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/task_runtime/tasklist/high_water_mark.py +0 -0
  234. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/task_runtime/tasklist/lock.py +0 -0
  235. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/task_runtime/tasklist/models.py +0 -0
  236. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/task_runtime/tasklist/path_resolver.py +0 -0
  237. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/task_runtime/tasklist/store.py +0 -0
  238. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/task_runtime/tasks/__init__.py +0 -0
  239. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/task_runtime/tasks/ai_analysis/__init__.py +0 -0
  240. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/task_runtime/tasks/ai_analysis/base.py +0 -0
  241. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/task_runtime/tasks/ai_analysis/evaluation.py +0 -0
  242. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/task_runtime/tasks/ai_analysis/registry.py +0 -0
  243. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/task_runtime/tasks/ai_analysis/scheduler.py +0 -0
  244. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/task_runtime/tasks/base/__init__.py +0 -0
  245. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/task_runtime/tasks/base/contracts.py +0 -0
  246. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/task_runtime/tasks/custom/__init__.py +0 -0
  247. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/task_runtime/tasks/custom/executor.py +0 -0
  248. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/task_runtime/tasks/custom/notification.py +0 -0
  249. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/task_runtime/tasks/custom/semantics.py +0 -0
  250. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/task_runtime/tasks/custom/spec.py +0 -0
  251. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/task_runtime/tasks/dream_task/__init__.py +0 -0
  252. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/task_runtime/tasks/dream_task/executor.py +0 -0
  253. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/task_runtime/tasks/dream_task/notification.py +0 -0
  254. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/task_runtime/tasks/dream_task/semantics.py +0 -0
  255. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/task_runtime/tasks/dream_task/spec.py +0 -0
  256. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/task_runtime/tasks/dream_task/state.py +0 -0
  257. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/task_runtime/tasks/in_process_teammate/__init__.py +0 -0
  258. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/task_runtime/tasks/in_process_teammate/executor.py +0 -0
  259. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/task_runtime/tasks/in_process_teammate/notification.py +0 -0
  260. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/task_runtime/tasks/in_process_teammate/semantics.py +0 -0
  261. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/task_runtime/tasks/in_process_teammate/spec.py +0 -0
  262. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/task_runtime/tasks/local_agent/__init__.py +0 -0
  263. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/task_runtime/tasks/local_agent/executor.py +0 -0
  264. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/task_runtime/tasks/local_agent/notification.py +0 -0
  265. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/task_runtime/tasks/local_agent/runner.py +0 -0
  266. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/task_runtime/tasks/local_agent/semantics.py +0 -0
  267. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/task_runtime/tasks/local_agent/spec.py +0 -0
  268. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/task_runtime/tasks/local_bash/__init__.py +0 -0
  269. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/task_runtime/tasks/local_bash/executor.py +0 -0
  270. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/task_runtime/tasks/local_bash/notification.py +0 -0
  271. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/task_runtime/tasks/local_bash/semantics.py +0 -0
  272. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/task_runtime/tasks/local_bash/spec.py +0 -0
  273. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/task_runtime/tasks/remote_agent/__init__.py +0 -0
  274. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/task_runtime/tasks/remote_agent/backend.py +0 -0
  275. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/task_runtime/tasks/remote_agent/executor.py +0 -0
  276. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/task_runtime/tasks/remote_agent/notification.py +0 -0
  277. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/task_runtime/tasks/remote_agent/semantics.py +0 -0
  278. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/task_runtime/tasks/remote_agent/spec.py +0 -0
  279. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/task_runtime/tasks/trace_cleanup/__init__.py +0 -0
  280. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/task_runtime/tasks/trace_cleanup/bootstrap.py +0 -0
  281. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/task_runtime/tasks/trace_cleanup/executor.py +0 -0
  282. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/task_runtime/tasks/trace_cleanup/scheduler.py +0 -0
  283. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tool_runtime/__init__.py +0 -0
  284. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tool_runtime/auto_mode/__init__.py +0 -0
  285. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tool_runtime/auto_mode/allowlist.py +0 -0
  286. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tool_runtime/auto_mode/classifier/__init__.py +0 -0
  287. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tool_runtime/auto_mode/classifier/classifier.py +0 -0
  288. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tool_runtime/auto_mode/classifier/parser.py +0 -0
  289. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tool_runtime/auto_mode/classifier/prompt.py +0 -0
  290. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tool_runtime/auto_mode/classifier/schema.py +0 -0
  291. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tool_runtime/auto_mode/classifier/transcript.py +0 -0
  292. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tool_runtime/auto_mode/config.py +0 -0
  293. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tool_runtime/auto_mode/config_update.py +0 -0
  294. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tool_runtime/auto_mode/decision.py +0 -0
  295. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tool_runtime/auto_mode/events.py +0 -0
  296. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tool_runtime/auto_mode/factory.py +0 -0
  297. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tool_runtime/auto_mode/feedback.py +0 -0
  298. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tool_runtime/auto_mode/hook.py +0 -0
  299. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tool_runtime/auto_mode/rule_stripping.py +0 -0
  300. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tool_runtime/auto_mode/state.py +0 -0
  301. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tool_runtime/base.py +0 -0
  302. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tool_runtime/errors.py +0 -0
  303. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tool_runtime/identical_call_cache.py +0 -0
  304. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tool_runtime/override.py +0 -0
  305. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tool_runtime/path_safety.py +0 -0
  306. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tool_runtime/permission_context.py +0 -0
  307. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tool_runtime/permission_decision.py +0 -0
  308. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tool_runtime/policy.py +0 -0
  309. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tool_runtime/policy_decorator.py +0 -0
  310. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tool_runtime/prompt/__init__.py +0 -0
  311. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tool_runtime/prompt/_abort.py +0 -0
  312. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tool_runtime/prompt/cli_interactive.py +0 -0
  313. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tool_runtime/prompt/handler.py +0 -0
  314. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tool_runtime/prompt/headless.py +0 -0
  315. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tool_runtime/prompt/legacy_resolver_adapter.py +0 -0
  316. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tool_runtime/prompt/race.py +0 -0
  317. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tool_runtime/prompt/types.py +0 -0
  318. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tool_runtime/read_ignore_patterns.py +0 -0
  319. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tool_runtime/read_permission.py +0 -0
  320. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tool_runtime/registry.py +0 -0
  321. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tool_runtime/resolvers/__init__.py +0 -0
  322. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tool_runtime/resolvers/agent_session.py +0 -0
  323. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tool_runtime/resolvers/background.py +0 -0
  324. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tool_runtime/resolvers/base.py +0 -0
  325. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tool_runtime/resolvers/conversation.py +0 -0
  326. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tool_runtime/resolvers/workflow.py +0 -0
  327. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tool_runtime/smoke_test_runtime.py +0 -0
  328. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/__init__.py +0 -0
  329. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/agent/__init__.py +0 -0
  330. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/agent/backend.py +0 -0
  331. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/agent/built_in/__init__.py +0 -0
  332. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/agent/built_in/agentx_guide.py +0 -0
  333. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/agent/built_in/explore.py +0 -0
  334. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/agent/built_in/general.py +0 -0
  335. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/agent/built_in/plan.py +0 -0
  336. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/agent/built_in/statusline_setup.py +0 -0
  337. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/agent/built_in/verification.py +0 -0
  338. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/agent/builtin_subagent_loader.py +0 -0
  339. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/agent/limits.py +0 -0
  340. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/agent/loader.py +0 -0
  341. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/agent/models.py +0 -0
  342. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/agent/prompt.py +0 -0
  343. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/agent/registry/__init__.py +0 -0
  344. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/agent/registry/config.py +0 -0
  345. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/agent/registry/registry.py +0 -0
  346. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/agent/scope.py +0 -0
  347. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/agent/tool.py +0 -0
  348. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/ask_user_question/__init__.py +0 -0
  349. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/ask_user_question/constants.py +0 -0
  350. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/ask_user_question/html_preview.py +0 -0
  351. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/ask_user_question/models.py +0 -0
  352. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/ask_user_question/prompt.py +0 -0
  353. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/ask_user_question/tool.py +0 -0
  354. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/ask_user_question/validators.py +0 -0
  355. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/bash/__init__.py +0 -0
  356. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/bash/ast_security.py +0 -0
  357. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/bash/auto_mode_adapter.py +0 -0
  358. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/bash/bash_runtime_contract.py +0 -0
  359. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/bash/cwd_reporter.py +0 -0
  360. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/bash/events.py +0 -0
  361. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/bash/limits.py +0 -0
  362. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/bash/mode_validation.py +0 -0
  363. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/bash/models.py +0 -0
  364. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/bash/observability.py +0 -0
  365. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/bash/output_utils.py +0 -0
  366. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/bash/path_security.py +0 -0
  367. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/bash/prompt.py +0 -0
  368. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/bash/read_only_validation.py +0 -0
  369. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/bash/result_presenter.py +0 -0
  370. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/bash/sandbox_decision.py +0 -0
  371. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/bash/security.py +0 -0
  372. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/bash/sed_edit_parser.py +0 -0
  373. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/bash/sed_validation.py +0 -0
  374. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/bash/semantics.py +0 -0
  375. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/bash/session_manager.py +0 -0
  376. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/bash/session_runtime.py +0 -0
  377. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/bash/task_runtime.py +0 -0
  378. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/bash/windows_shell_quoting.py +0 -0
  379. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/edit/__init__.py +0 -0
  380. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/edit/backend.py +0 -0
  381. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/edit/diff_generator.py +0 -0
  382. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/edit/git_diff_generator.py +0 -0
  383. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/edit/limits.py +0 -0
  384. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/edit/models.py +0 -0
  385. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/edit/prompt.py +0 -0
  386. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/edit/quote_match.py +0 -0
  387. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/edit/quote_normalizer.py +0 -0
  388. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/edit/settings_validator.py +0 -0
  389. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/edit/staleness.py +0 -0
  390. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/edit/validator.py +0 -0
  391. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/glob/__init__.py +0 -0
  392. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/glob/models.py +0 -0
  393. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/glob/pagination.py +0 -0
  394. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/glob/prompt.py +0 -0
  395. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/glob/rg_list_backend.py +0 -0
  396. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/glob/rg_pattern.py +0 -0
  397. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/grep/__init__.py +0 -0
  398. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/grep/backend.py +0 -0
  399. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/grep/models.py +0 -0
  400. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/grep/prompt.py +0 -0
  401. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/grep/rg_subprocess_controller.py +0 -0
  402. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/read/__init__.py +0 -0
  403. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/read/backend.py +0 -0
  404. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/read/limits.py +0 -0
  405. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/read/models.py +0 -0
  406. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/read/prompt.py +0 -0
  407. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/ripgrep_plugin_exclusions.py +0 -0
  408. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/skill/__init__.py +0 -0
  409. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/skill/argument_substitution.py +0 -0
  410. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/skill/loader.py +0 -0
  411. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/skill/models.py +0 -0
  412. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/skill/policy.py +0 -0
  413. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/skill/prompt.py +0 -0
  414. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/skill/tool.py +0 -0
  415. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/task_create/__init__.py +0 -0
  416. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/task_create/hooks.py +0 -0
  417. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/task_create/limits.py +0 -0
  418. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/task_create/models.py +0 -0
  419. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/task_create/prompt.py +0 -0
  420. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/task_create/tool.py +0 -0
  421. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/task_get/__init__.py +0 -0
  422. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/task_get/models.py +0 -0
  423. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/task_get/prompt.py +0 -0
  424. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/task_get/tool.py +0 -0
  425. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/task_list/__init__.py +0 -0
  426. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/task_list/models.py +0 -0
  427. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/task_list/prompt.py +0 -0
  428. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/task_list/tool.py +0 -0
  429. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/task_update/__init__.py +0 -0
  430. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/task_update/hooks.py +0 -0
  431. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/task_update/models.py +0 -0
  432. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/task_update/prompt.py +0 -0
  433. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/task_update/tool.py +0 -0
  434. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/user_message/__init__.py +0 -0
  435. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/user_message/attachments.py +0 -0
  436. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/user_message/models.py +0 -0
  437. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/user_message/prompt.py +0 -0
  438. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/user_message/runtime_config.py +0 -0
  439. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/webfetch/__init__.py +0 -0
  440. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/webfetch/backend.py +0 -0
  441. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/webfetch/limits.py +0 -0
  442. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/webfetch/loader.py +0 -0
  443. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/webfetch/models.py +0 -0
  444. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/webfetch/preapproved.py +0 -0
  445. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/webfetch/prompt.py +0 -0
  446. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/webfetch/summary.py +0 -0
  447. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/webfetch/tool.py +0 -0
  448. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/websearch/__init__.py +0 -0
  449. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/websearch/backend.py +0 -0
  450. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/websearch/events.py +0 -0
  451. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/websearch/limits.py +0 -0
  452. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/websearch/loader.py +0 -0
  453. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/websearch/models.py +0 -0
  454. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/websearch/prompt.py +0 -0
  455. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/websearch/tool.py +0 -0
  456. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/write/__init__.py +0 -0
  457. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/write/backend.py +0 -0
  458. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/write/limits.py +0 -0
  459. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/write/models.py +0 -0
  460. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/write/prompt.py +0 -0
  461. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/tools/write/validator.py +0 -0
  462. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/utils/__init__.py +0 -0
  463. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/utils/cwd.py +0 -0
  464. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/utils/host_platform.py +0 -0
  465. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/utils/path_hierarchy.py +0 -0
  466. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/utils/path_user_input.py +0 -0
  467. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/utils/rg_executable.py +0 -0
  468. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/utils/subprocess_text.py +0 -0
  469. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/utils/temp_paths.py +0 -0
  470. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/utils/unc_path.py +0 -0
  471. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/utils/win_reserved_paths.py +0 -0
  472. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/workflow/__init__.py +0 -0
  473. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/workflow/base.py +0 -0
  474. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/workflow/batch.py +0 -0
  475. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/workflow/dag.py +0 -0
  476. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/workflow/event_adapter/__init__.py +0 -0
  477. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/workflow/event_adapter/adapter.py +0 -0
  478. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/workflow/event_adapter/depth_resolver.py +0 -0
  479. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/workflow/event_adapter/handlers/__init__.py +0 -0
  480. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/workflow/event_adapter/handlers/parallel_handler.py +0 -0
  481. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/workflow/event_adapter/handlers/route_handler.py +0 -0
  482. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/workflow/event_adapter/handlers/stage_handler.py +0 -0
  483. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/workflow/event_adapter/stack.py +0 -0
  484. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/workflow/event_adapter/types.py +0 -0
  485. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/workflow/node.py +0 -0
  486. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/workflow/patterns/__init__.py +0 -0
  487. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/workflow/patterns/chaining.py +0 -0
  488. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/workflow/patterns/evaluator_optimizer.py +0 -0
  489. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/workflow/patterns/orchestrator.py +0 -0
  490. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/workflow/patterns/parallelization.py +0 -0
  491. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/workflow/patterns/routing.py +0 -0
  492. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/workflow/state.py +0 -0
  493. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/workspace/capabilities.py +0 -0
  494. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/workspace/config.py +0 -0
  495. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/workspace/path_key_normalizer.py +0 -0
  496. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx/workspace/validators.py +0 -0
  497. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx_python.egg-info/dependency_links.txt +0 -0
  498. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx_python.egg-info/not-zip-safe +0 -0
  499. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx_python.egg-info/requires.txt +0 -0
  500. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/langchain_agentx_python.egg-info/top_level.txt +0 -0
  501. {langchain-agentx-python-0.5.3 → langchain-agentx-python-0.6.0}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: langchain-agentx-python
3
- Version: 0.5.3
3
+ Version: 0.6.0
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__ = "0.5.3"
14
+ __version__ = "0.6.0"
15
15
 
16
16
  from .loop import ( # noqa: F401
17
17
  create_loop_agent,
@@ -54,7 +54,9 @@ class AgentLoopConfig:
54
54
  prompt_handler: Any | None = None # L3 PermissionPromptHandler
55
55
  workspace_root: str | None = None # 工具层 workspace 根路径,权限检查边界
56
56
  agent_home: str = ".langchain_agentx" # Agent 家目录(skills/worktrees/tasks 派生根)
57
- cwd: str | None = None # 当前工作目录,路径展开基准,可被子代理覆盖(CC 对照:getCwd()
57
+ cwd: str | None = None # 过渡期保留;路径展开应走 boundary_view.resolve_cwd()
58
+ boundary: Any | None = None # WorkspaceBoundary frozen 实例
59
+ enable_dynamic_root_grant: bool = False # workflow 默认关;CLI 入口默认开
58
60
 
59
61
  # 会话标识
60
62
  session_id: str = ""
@@ -185,6 +185,8 @@ class LoopGraphBuilder:
185
185
  managed_rules: str | None = None,
186
186
  active_files_getter: "Callable[[], list[str]] | None" = None,
187
187
  workspace_root: str | Path | None = None,
188
+ read_roots: list[str | Path] | None = None,
189
+ write_roots: list[str | Path] | None = None,
188
190
  agent_home: str = ".langchain_agentx",
189
191
  workspace_trust_accepted: bool | None = None,
190
192
  raw_hooks: "HookRegistry | None" = None,
@@ -192,6 +194,7 @@ class LoopGraphBuilder:
192
194
  capabilities: "RuntimeCapabilities | None" = None,
193
195
  enable_git_snapshot: bool | None = None,
194
196
  include_default_session_context: bool = True,
197
+ enable_dynamic_root_grant: bool = False,
195
198
  ) -> None:
196
199
  self._raw_model = model
197
200
  self._raw_system_prompt = system_prompt
@@ -227,6 +230,8 @@ class LoopGraphBuilder:
227
230
  self._raw_managed_rules = managed_rules
228
231
  self._raw_active_files_getter = active_files_getter
229
232
  self._raw_workspace_root = workspace_root
233
+ self._raw_read_roots = list(read_roots) if read_roots else None
234
+ self._raw_write_roots = list(write_roots) if write_roots else None
230
235
  self._raw_agent_home = agent_home
231
236
  self._raw_workspace_trust_accepted = workspace_trust_accepted
232
237
  self._raw_hooks = raw_hooks
@@ -234,6 +239,7 @@ class LoopGraphBuilder:
234
239
  self._raw_capabilities = capabilities
235
240
  self._raw_enable_git_snapshot = enable_git_snapshot
236
241
  self._raw_include_default_session_context = include_default_session_context
242
+ self._raw_enable_dynamic_root_grant = enable_dynamic_root_grant
237
243
 
238
244
  self._prepared = False
239
245
 
@@ -251,8 +257,13 @@ class LoopGraphBuilder:
251
257
  base_prompt = self._resolve_base_prompt()
252
258
  self._dynamic_sections: list[SystemPromptSection] = list(self._raw_dynamic_sections)
253
259
  append_system_prompt = self._raw_append_system_prompt
254
- self._setup_loader_tools()
255
260
  self._resolve_workspace_config()
261
+ self._setup_loader_tools()
262
+ if session_store is not None and hasattr(session_store, "configure_root_grant"):
263
+ session_store.configure_root_grant(
264
+ enabled=self._raw_enable_dynamic_root_grant,
265
+ boundary=self._workspace_boundary,
266
+ )
256
267
  if self._raw_capabilities is None:
257
268
  from ...workspace import RuntimeCapabilities as _Caps
258
269
 
@@ -352,7 +363,8 @@ class LoopGraphBuilder:
352
363
  ),
353
364
  workspace_root=self._workspace_root,
354
365
  agent_home=self._agent_home,
355
- cwd=self._workspace_root,
366
+ boundary=self._workspace_boundary,
367
+ enable_dynamic_root_grant=self._raw_enable_dynamic_root_grant,
356
368
  subagent_type=self._raw_subagent_type,
357
369
  trace_enabled=self._raw_enable_trace,
358
370
  model_profile_registry=self._model_profile_registry,
@@ -513,9 +525,18 @@ class LoopGraphBuilder:
513
525
  def _setup_loader_tools(self) -> None:
514
526
  self._loader_tools = []
515
527
  self._skill_runtime_tool = None
528
+ self._loop_loader = None
516
529
  if self._raw_loader is not None:
517
- self._loader_tools = self._raw_loader._registry.to_langchain_tools()
518
- for rt in self._raw_loader._registry.list():
530
+ self._loop_loader = self._raw_loader.spawn_loop_loader(
531
+ workspace_root=self._workspace_root,
532
+ agent_home=self._agent_home,
533
+ )
534
+ self._loop_loader.register_default_tools()
535
+ for tool in self._raw_loader.registry.list():
536
+ if tool.name not in self._loop_loader.registry._tools:
537
+ self._loop_loader.register(tool)
538
+ self._loader_tools = self._loop_loader.registry.to_langchain_tools()
539
+ for rt in self._loop_loader.registry.list():
519
540
  if self._skill_runtime_tool is None and rt.__class__.__name__ == "SkillRuntimeTool":
520
541
  self._skill_runtime_tool = rt
521
542
 
@@ -532,6 +553,13 @@ class LoopGraphBuilder:
532
553
  self._workspace_cfg = workspace_cfg
533
554
  self._workspace_root = str(workspace_cfg.workspace_root)
534
555
  self._agent_home = workspace_cfg.agent_home
556
+ from langchain_agentx.workspace import WorkspaceBoundary
557
+
558
+ self._workspace_boundary = WorkspaceBoundary.build(
559
+ workspace_root=self._workspace_root,
560
+ read_roots=self._raw_read_roots,
561
+ write_roots=self._raw_write_roots,
562
+ )
535
563
 
536
564
  @staticmethod
537
565
  def _run_coro_sync(coro: Any) -> Any:
@@ -1310,7 +1338,12 @@ class LoopGraphBuilder:
1310
1338
  if "configurable" not in config:
1311
1339
  config["configurable"] = {}
1312
1340
  config["configurable"]["tool_loader"] = self._raw_loader
1313
- config["configurable"]["tool_registry"] = self._raw_loader.registry
1341
+ registry = (
1342
+ self._loop_loader.registry
1343
+ if self._loop_loader is not None
1344
+ else self._raw_loader.registry
1345
+ )
1346
+ config["configurable"]["tool_registry"] = registry
1314
1347
  compiled = graph.compile(
1315
1348
  debug=self._debug,
1316
1349
  name=self._name,
@@ -1400,6 +1433,8 @@ def create_loop_agent(
1400
1433
  managed_rules: str | None = None,
1401
1434
  active_files_getter: "Callable[[], list[str]] | None" = None,
1402
1435
  workspace_root: str | Path | None = None,
1436
+ read_roots: list[str | Path] | None = None,
1437
+ write_roots: list[str | Path] | None = None,
1403
1438
  agent_home: str = ".langchain_agentx",
1404
1439
  workspace_trust_accepted: bool | None = None,
1405
1440
  hooks: "HookRegistry | None" = None,
@@ -1407,6 +1442,7 @@ def create_loop_agent(
1407
1442
  capabilities: "RuntimeCapabilities | None" = None,
1408
1443
  enable_git_snapshot: bool | None = None,
1409
1444
  include_default_session_context: bool = True,
1445
+ enable_dynamic_root_grant: bool = False,
1410
1446
  ) -> CompiledStateGraph[
1411
1447
  AgentState[ResponseT], ContextT, _InputAgentState, _OutputAgentState[ResponseT]
1412
1448
  ]:
@@ -1447,6 +1483,8 @@ def create_loop_agent(
1447
1483
  managed_rules=managed_rules,
1448
1484
  active_files_getter=active_files_getter,
1449
1485
  workspace_root=workspace_root,
1486
+ read_roots=read_roots,
1487
+ write_roots=write_roots,
1450
1488
  agent_home=agent_home,
1451
1489
  workspace_trust_accepted=workspace_trust_accepted,
1452
1490
  raw_hooks=hooks,
@@ -1454,6 +1492,7 @@ def create_loop_agent(
1454
1492
  capabilities=capabilities,
1455
1493
  enable_git_snapshot=enable_git_snapshot,
1456
1494
  include_default_session_context=include_default_session_context,
1495
+ enable_dynamic_root_grant=enable_dynamic_root_grant,
1457
1496
  )
1458
1497
  tool_node = builder._build_tool_node()
1459
1498
  model_node = builder._build_model_nodes(tool_node)
@@ -78,6 +78,7 @@ def create_conversation_session(
78
78
  prompt_handler=resolved_prompt_handler,
79
79
  permission_resolver=resolved_permission_resolver,
80
80
  container_type=container_type,
81
+ enable_dynamic_root_grant=True,
81
82
  **loop_kwargs,
82
83
  )
83
84
 
@@ -86,6 +86,7 @@ def create_agent_session(
86
86
  active_files_getter=active_files_getter,
87
87
  container_type=container_type,
88
88
  enable_trace=enable_trace,
89
+ enable_dynamic_root_grant=True,
89
90
  capabilities=capabilities,
90
91
  **loop_kwargs,
91
92
  )
@@ -139,22 +139,41 @@ class LangChainAdapter:
139
139
  conversation_session_id = getattr(loop_config, "conversation_session_id", None) or session_id
140
140
  workspace_root = getattr(loop_config, "workspace_root", None)
141
141
  agent_home = getattr(loop_config, "agent_home", ".langchain_agentx")
142
- # cwd:loop_config.cwd session_store.cwd_override → workspace_root → get_cwd()
143
- from langchain_agentx.utils.cwd import get_cwd as _utils_get_cwd
142
+ boundary = getattr(loop_config, "boundary", None)
144
143
 
145
- cwd = getattr(loop_config, "cwd", None)
144
+ sess = configurable.get("session_store")
145
+ from langchain_agentx.tool_runtime.session_store import (
146
+ AgentSessionStore as _AgentSessionStore,
147
+ )
148
+
149
+ boundary_view = None
150
+ if boundary is not None and isinstance(sess, _AgentSessionStore):
151
+ from langchain_agentx.workspace.view import WorkspaceBoundaryView
152
+
153
+ boundary_view = WorkspaceBoundaryView(boundary, sess)
154
+
155
+ cwd: str | None = None
156
+ if boundary_view is not None:
157
+ cwd = str(boundary_view.resolve_cwd(None))
158
+ elif isinstance(sess, _AgentSessionStore):
159
+ sess_cwd = sess.cwd_override
160
+ if isinstance(sess_cwd, str) and sess_cwd:
161
+ cwd = sess_cwd
146
162
  if not cwd:
147
- sess = configurable.get("session_store")
148
- from langchain_agentx.tool_runtime.session_store import (
149
- AgentSessionStore as _AgentSessionStore,
163
+ cwd = workspace_root
164
+ if not cwd:
165
+ from langchain_agentx.workspace.errors import ConfigError
166
+
167
+ raise ConfigError(
168
+ "ToolExecutionContext cwd resolution failed: "
169
+ "neither boundary_view nor workspace_root configured."
150
170
  )
151
171
 
152
- if isinstance(sess, _AgentSessionStore):
153
- sess_cwd = sess.cwd_override
154
- if isinstance(sess_cwd, str) and sess_cwd:
155
- cwd = sess_cwd
156
- if not cwd:
157
- cwd = workspace_root or _utils_get_cwd()
172
+ original_cwd: str | None = None
173
+ if boundary is not None:
174
+ original_cwd = str(boundary.workspace_root)
175
+ elif workspace_root:
176
+ original_cwd = str(workspace_root)
158
177
  trace_enabled = bool(getattr(loop_config, "trace_enabled", True))
159
178
 
160
179
  _depth_from_loop = getattr(loop_config, "agent_depth", None)
@@ -266,6 +285,8 @@ class LangChainAdapter:
266
285
  workspace_root=workspace_root,
267
286
  agent_home=agent_home,
268
287
  cwd=cwd,
288
+ original_cwd=original_cwd,
289
+ boundary_view=boundary_view,
269
290
  trace_enabled=trace_enabled,
270
291
  cancel_event=cancel_ev,
271
292
  tool_config_path=tool_config_path,
@@ -0,0 +1,209 @@
1
+ """
2
+ runtime/loader.py — 工具运行时框架进程级初始化入口
3
+
4
+ 职责:
5
+ 进程级一次性初始化,组装框架核心组件(pipeline / policy / registry)并统一管理工具注册。
6
+ loader 只负责注册 RuntimeTool,不构造 StructuredTool。
7
+ StructuredTool 构造由 factory(create_loop_agent)在 graph 构建时负责,
8
+ 通过 create_loop_agent(loader=...) 在构图时调用 to_langchain_tools() 构造 StructuredTool。
9
+
10
+ policy_config 用于构造 DefaultPolicyEngine,在 register() 时自动注入给每个工具。
11
+ 工具无需手动传入 policy,由 loader 统一治理。
12
+
13
+ 装配路径:
14
+ ToolRuntimeLoader(policy_config=...) 构造
15
+ → ProcessLoader(共享 policy / pipeline)
16
+ → spawn_loop_loader(...) 构造 per-loop LoopLoader
17
+ → 传入 create_loop_agent(loader=loader, ...)
18
+ → factory 内部调用 loop_loader.registry.to_langchain_tools()
19
+ """
20
+
21
+ from __future__ import annotations
22
+
23
+ from typing import TYPE_CHECKING, Any
24
+
25
+ from langchain_core.tools import BaseTool
26
+
27
+ from .adapter import LangChainAdapter
28
+ from .base import RuntimeTool
29
+ from .loop_loader import LoopLoader
30
+ from .pipeline import ToolExecutorPipeline, ToolOutputManager
31
+ from .auto_mode.config import AutoModeConfig
32
+ from .process_loader import ProcessLoader
33
+ from .registry import RuntimeToolRegistry
34
+ from .prompt.handler import PermissionPromptHandler
35
+ from .resolvers import PermissionResolver
36
+ from .policy import PolicyEngine, ToolPolicyConfig
37
+ from .session_store import AgentSessionStore
38
+
39
+
40
+ class ToolRuntimeLoader:
41
+ """
42
+ 工具运行时进程级装配入口。
43
+
44
+ policy_config: 策略配置,构造 DefaultPolicyEngine 并自动注入给所有注册工具。
45
+ 为 None 时不注入 policy(工具默认 allow,适用于开发/测试模式)。
46
+ policy_engine: 直接传入自定义 PolicyEngine 实例(优先于 policy_config)。
47
+ output_manager: 工具输出大小管控器,为 None 时使用默认配置。
48
+ headless: 是否处于无交互(headless)模式。
49
+ True — ask 走 HeadlessPromptHandler(仅 hook 链,无决议则 deny)。
50
+ False — ask 走 prompt_handler 或 legacy permission_resolver。
51
+ prompt_handler: L3 PermissionPromptHandler;优先于 permission_resolver。
52
+ permission_resolver: 旧 (name, prompt) -> bool 垫片,自动包装为 LegacyResolverPromptHandler。
53
+ """
54
+
55
+ def __init__(
56
+ self,
57
+ *,
58
+ policy_config: ToolPolicyConfig | None = None,
59
+ policy_engine: PolicyEngine | None = None,
60
+ output_manager: ToolOutputManager | None = None,
61
+ headless: bool = False,
62
+ prompt_handler: PermissionPromptHandler | None = None,
63
+ permission_resolver: PermissionResolver | None = None,
64
+ ) -> None:
65
+ self._process = ProcessLoader(
66
+ policy_config=policy_config,
67
+ policy_engine=policy_engine,
68
+ output_manager=output_manager,
69
+ headless=headless,
70
+ prompt_handler=prompt_handler,
71
+ permission_resolver=permission_resolver,
72
+ )
73
+ self._registry = RuntimeToolRegistry(
74
+ pipeline=self._process.pipeline,
75
+ adapter=self._process.adapter,
76
+ )
77
+
78
+ def register(self, tool: RuntimeTool) -> "ToolRuntimeLoader":
79
+ """
80
+ 注册工具并自动注入 PolicyEngine。
81
+
82
+ 注入规则:
83
+ - 工具已有 _policy(初始化时手动传入)→ 不覆盖,保留工具自己的 policy
84
+ - 工具无 _policy(_policy is None)→ 注入 loader 的统一 policy
85
+ 这允许个别工具使用专属 policy,其余工具统一受 loader policy 保护。
86
+ """
87
+ if self._process.policy is not None and getattr(tool, "_policy", None) is None:
88
+ tool._policy = self._process.policy
89
+ self._registry.register(tool)
90
+ return self
91
+
92
+ def register_default_tools(
93
+ self,
94
+ *,
95
+ workspace_root: str,
96
+ agent_home: str = ".langchain_agentx",
97
+ include_agent: bool = True,
98
+ include_skill: bool = False,
99
+ agent_registry: Any | None = None,
100
+ ) -> "ToolRuntimeLoader":
101
+ """
102
+ 注册默认工具集(Read/Grep/Glob/Bash + 可选 Agent/Skill)。
103
+
104
+ 向后兼容:在 loader 自身 registry 上注册(单 loop 模式)。
105
+ create_loop_agent 应优先使用 ``spawn_loop_loader`` 获得 per-loop 隔离。
106
+ """
107
+ loop = self.spawn_loop_loader(
108
+ workspace_root=workspace_root,
109
+ agent_home=agent_home,
110
+ )
111
+ loop.register_default_tools(
112
+ include_agent=include_agent,
113
+ include_skill=include_skill,
114
+ agent_registry=agent_registry,
115
+ )
116
+ for tool in loop.registry.list():
117
+ if tool.name not in self._registry._tools:
118
+ self._registry.register(tool)
119
+ return self
120
+
121
+ def spawn_loop_loader(
122
+ self,
123
+ *,
124
+ workspace_root: str,
125
+ agent_home: str = ".langchain_agentx",
126
+ ) -> LoopLoader:
127
+ """构造独立的 per-loop 工具注册表(不污染 loader 主 registry)。"""
128
+ return LoopLoader(
129
+ self._process,
130
+ workspace_root=workspace_root,
131
+ agent_home=agent_home,
132
+ )
133
+
134
+ def create_session(self, session_id: str | None = None) -> AgentSessionStore:
135
+ return AgentSessionStore(session_id=session_id)
136
+
137
+ def fork_with_tools(self, tools: list[RuntimeTool]) -> "ToolRuntimeLoader":
138
+ """
139
+ 基于当前 loader 派生一个子 loader(共享 policy/headless 语义),并注册给定工具集。
140
+
141
+ 目的:为 subagent 组装“过滤后的工具池”而不丢失权限/管控语义。
142
+ """
143
+ child = ToolRuntimeLoader(
144
+ policy_engine=self._process.policy,
145
+ headless=self._process.headless,
146
+ prompt_handler=self._process.prompt_handler,
147
+ permission_resolver=self._process.permission_resolver,
148
+ )
149
+ for t in tools:
150
+ child.register(t)
151
+ return child
152
+
153
+ def set_permission_resolver(
154
+ self,
155
+ permission_resolver: PermissionResolver | None,
156
+ ) -> None:
157
+ """更新 loader 与 pipeline 的 permission_resolver(包装为 L3 垫片)。"""
158
+ self._process.set_permission_resolver(permission_resolver)
159
+
160
+ def set_prompt_handler(
161
+ self,
162
+ prompt_handler: PermissionPromptHandler | None,
163
+ ) -> None:
164
+ """更新 loader 与 pipeline 的 prompt_handler。"""
165
+ self._process.set_prompt_handler(prompt_handler)
166
+
167
+ def update_auto_mode_config(
168
+ self,
169
+ *,
170
+ enabled: bool | None = None,
171
+ classifier_model: str | None = None,
172
+ classifier_path: str | None = None,
173
+ use_classifier: bool | None = None,
174
+ auto_mode_config: AutoModeConfig | None = None,
175
+ ) -> AutoModeConfig:
176
+ return self._process.update_auto_mode_config(
177
+ enabled=enabled,
178
+ classifier_model=classifier_model,
179
+ classifier_path=classifier_path,
180
+ use_classifier=use_classifier,
181
+ auto_mode_config=auto_mode_config,
182
+ )
183
+
184
+ @property
185
+ def process_loader(self) -> ProcessLoader:
186
+ return self._process
187
+
188
+ @property
189
+ def policy_config(self) -> ToolPolicyConfig | None:
190
+ return self._process.policy_config
191
+
192
+ @property
193
+ def policy(self) -> PolicyEngine | None:
194
+ return self._process.policy
195
+
196
+ @property
197
+ def registry(self) -> RuntimeToolRegistry:
198
+ return self._registry
199
+
200
+ @property
201
+ def pipeline(self) -> ToolExecutorPipeline:
202
+ return self._process.pipeline
203
+
204
+ @property
205
+ def adapter(self) -> LangChainAdapter:
206
+ return self._process.adapter
207
+
208
+ def __repr__(self) -> str:
209
+ return f"<ToolRuntimeLoader tools={list(self._registry._tools.keys())}>"
@@ -0,0 +1,186 @@
1
+ """
2
+ tool_runtime/loop_loader.py — loop 级工具注册与隔离实例
3
+
4
+ 职责:
5
+ 每个 loop_agent 持有独立 RuntimeToolRegistry、ToolStateBridge、Glob/Grep 实例。
6
+
7
+ 链路位置:
8
+ create_loop_agent 经 ToolRuntimeLoader.spawn_loop_loader 构造 per-loop 实例。
9
+
10
+ 当前裁剪范围:
11
+ 不含进程级 policy/pipeline 构造;从 ProcessLoader 注入共享组件。
12
+ """
13
+
14
+ from __future__ import annotations
15
+
16
+ from typing import Any
17
+
18
+ from .path_safety import PathSafetyConfig
19
+ from .process_loader import ProcessLoader
20
+ from .read_ignore_patterns import ReadDenyPatternCollector
21
+ from .registry import RuntimeToolRegistry
22
+ from .policy import DefaultPolicyEngine
23
+
24
+
25
+ class LoopLoader:
26
+ """单 loop 工具注册表与 per-loop 工具实例。"""
27
+
28
+ def __init__(
29
+ self,
30
+ process: ProcessLoader,
31
+ *,
32
+ workspace_root: str,
33
+ agent_home: str = ".langchain_agentx",
34
+ ) -> None:
35
+ self._process = process
36
+ self._workspace_root = workspace_root
37
+ self._agent_home = agent_home
38
+ self._registry = RuntimeToolRegistry(
39
+ pipeline=process.pipeline,
40
+ adapter=process.adapter,
41
+ )
42
+
43
+ @property
44
+ def process(self) -> ProcessLoader:
45
+ return self._process
46
+
47
+ @property
48
+ def registry(self) -> RuntimeToolRegistry:
49
+ return self._registry
50
+
51
+ @property
52
+ def workspace_root(self) -> str:
53
+ return self._workspace_root
54
+
55
+ def register(self, tool: Any) -> "LoopLoader":
56
+ policy = self._process.policy
57
+ if policy is not None and getattr(tool, "_policy", None) is None:
58
+ tool._policy = policy
59
+ self._registry.register(tool)
60
+ return self
61
+
62
+ def register_default_tools(
63
+ self,
64
+ *,
65
+ include_agent: bool = True,
66
+ include_skill: bool = False,
67
+ agent_registry: Any | None = None,
68
+ ) -> "LoopLoader":
69
+ from pathlib import Path
70
+
71
+ from langchain_agentx.tools.ask_user_question import AskUserQuestionTool
72
+ from langchain_agentx.tools.bash import BashRuntimeTool
73
+ from langchain_agentx.tools.edit import EditRuntimeTool
74
+ from langchain_agentx.tools.edit.settings_validator import SettingsValidator
75
+ from langchain_agentx.tools.edit.staleness import StalenessChecker
76
+ from langchain_agentx.tools.edit.validator import EditStringValidator
77
+ from langchain_agentx.tools.glob import GlobRuntimeTool
78
+ from langchain_agentx.tools.grep import GrepRuntimeTool
79
+ from langchain_agentx.tools.read import ReadRuntimeTool
80
+ from langchain_agentx.tools.ripgrep_plugin_exclusions import PluginCacheGlobExclusions
81
+ from langchain_agentx.tools.task_list.tool import TaskListRuntimeTool
82
+ from langchain_agentx.tools.user_message import UserMessageTool
83
+ from langchain_agentx.tools.webfetch import loader as webfetch_loader
84
+ from langchain_agentx.tools.websearch import loader as websearch_loader
85
+ from langchain_agentx.tools.write import WriteRuntimeTool
86
+ from langchain_agentx.tool_runtime.state_bridge import ToolStateBridge
87
+ from langchain_agentx.workspace.config import AgentWorkspaceConfig
88
+
89
+ wr = Path(self._workspace_root).resolve()
90
+ cfg = AgentWorkspaceConfig(workspace_root=wr, agent_home=self._agent_home)
91
+ self._inject_path_safety_policy(
92
+ workspace_root=str(wr),
93
+ agent_home_segment=cfg.agent_home_dir.name,
94
+ )
95
+ plugin_ex = PluginCacheGlobExclusions(
96
+ cache_root=str(cfg.plugin_cache_dir.resolve()),
97
+ )
98
+
99
+ shared_bridge = ToolStateBridge(initial_cwd=str(wr))
100
+ search_ignore_patterns = self._collect_search_ignore_patterns()
101
+
102
+ settings_validator = SettingsValidator(agent_home_segment=cfg.agent_home_dir.name)
103
+ edit_staleness = StalenessChecker(shared_bridge)
104
+ edit_string_validator = EditStringValidator(
105
+ state_bridge=shared_bridge,
106
+ staleness_checker=edit_staleness,
107
+ settings_validator=settings_validator,
108
+ )
109
+
110
+ self.register(ReadRuntimeTool(state_bridge=shared_bridge))
111
+ self.register(WriteRuntimeTool(state_bridge=shared_bridge))
112
+ self.register(
113
+ EditRuntimeTool(
114
+ state_bridge=shared_bridge,
115
+ string_validator=edit_string_validator,
116
+ staleness_checker=edit_staleness,
117
+ )
118
+ )
119
+ self.register(
120
+ GrepRuntimeTool(
121
+ workspace_root=str(wr),
122
+ plugin_cache_glob_exclusions=plugin_ex,
123
+ ignore_patterns=search_ignore_patterns or None,
124
+ )
125
+ )
126
+ self.register(
127
+ GlobRuntimeTool(
128
+ workspace_root=str(wr),
129
+ plugin_cache_glob_exclusions=plugin_ex,
130
+ state_bridge=shared_bridge,
131
+ ignore_patterns=search_ignore_patterns or None,
132
+ )
133
+ )
134
+ self.register(BashRuntimeTool(state_bridge=shared_bridge))
135
+ self.register(UserMessageTool())
136
+ self.register(AskUserQuestionTool())
137
+ self.register(TaskListRuntimeTool(config=cfg))
138
+
139
+ websearch_loader.register(self)
140
+ webfetch_loader.register(self)
141
+
142
+ if include_agent:
143
+ from langchain_agentx.tools.agent import AgentRuntimeTool
144
+
145
+ self.register(AgentRuntimeTool(registry=agent_registry))
146
+
147
+ if include_skill:
148
+ from langchain_agentx.tools.skill import SkillRuntimeTool
149
+
150
+ self.register(
151
+ SkillRuntimeTool(
152
+ workspace_root=self._workspace_root,
153
+ agent_home=self._agent_home,
154
+ )
155
+ )
156
+
157
+ return self
158
+
159
+ def _collect_search_ignore_patterns(self) -> list[str]:
160
+ cfg = self._process.policy_config
161
+ policy = self._process.policy
162
+ if cfg is None and isinstance(policy, DefaultPolicyEngine):
163
+ cfg = policy._config
164
+ return ReadDenyPatternCollector().collect(cfg)
165
+
166
+ def _inject_path_safety_policy(
167
+ self,
168
+ *,
169
+ workspace_root: str,
170
+ agent_home_segment: str,
171
+ ) -> None:
172
+ path_cfg = PathSafetyConfig.from_workspace(
173
+ workspace_root=workspace_root,
174
+ agent_home_segment=agent_home_segment,
175
+ )
176
+ policy_config = self._process.policy_config
177
+ if policy_config is not None and policy_config.path_safety is None:
178
+ policy_config.path_safety = path_cfg
179
+ policy = self._process.policy
180
+ if isinstance(policy, DefaultPolicyEngine):
181
+ pc = policy._config
182
+ if pc.path_safety is None:
183
+ pc.path_safety = path_cfg
184
+
185
+
186
+ __all__ = ["LoopLoader"]
@@ -100,7 +100,9 @@ class ToolExecutionContext:
100
100
  agent_depth: int = 0
101
101
  workspace_root: str | None = None
102
102
  agent_home: str = ".langchain_agentx"
103
- cwd: str | None = None # 工具执行时的路径基准(CC 对照:getCwd()
103
+ cwd: str | None = None # 过渡期派生字段;工具应读 boundary_view.resolve_cwd()
104
+ original_cwd: str | None = None # = boundary.workspace_root
105
+ boundary_view: Any | None = None # WorkspaceBoundaryView
104
106
  trace_enabled: bool = True
105
107
  cancel_event: threading.Event | None = None
106
108
  """可选;由 ``RunnableConfig.configurable[\"cancel_event\"]`` 注入。set 后 Grep/Glob 应中断 rg。"""
@@ -1026,6 +1026,17 @@ class ToolExecutorPipeline:
1026
1026
  if resp.permission_updates:
1027
1027
  ctx.persist_permission_updates(resp.permission_updates)
1028
1028
 
1029
+ if resp.behavior == "allow":
1030
+ from langchain_agentx.workspace.l3_root_grant import apply_l3_root_grants
1031
+
1032
+ apply_l3_root_grants(
1033
+ ctx,
1034
+ tool_name=tool.name,
1035
+ input_data=parsed_data,
1036
+ permission_updates=resp.permission_updates,
1037
+ decision_source=resp.decision_source.value,
1038
+ )
1039
+
1029
1040
  if resp.behavior == "deny":
1030
1041
  env = blocked_envelope(
1031
1042
  tool.name,