langchain-agentx-python 0.2.5__tar.gz → 0.2.6__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 (440) hide show
  1. {langchain-agentx-python-0.2.5/langchain_agentx_python.egg-info → langchain-agentx-python-0.2.6}/PKG-INFO +1 -1
  2. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/loop/model/model_node.py +22 -27
  3. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/loop/model/model_nodes.py +20 -25
  4. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/loop/model/retrier.py +5 -2
  5. langchain-agentx-python-0.2.6/langchain_agentx/loop/model/retry_bridge.py +56 -0
  6. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/provider/compatible_chat_openai.py +20 -1
  7. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6/langchain_agentx_python.egg-info}/PKG-INFO +1 -1
  8. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/pyproject.toml +1 -1
  9. langchain-agentx-python-0.2.5/langchain_agentx/loop/model/retry_bridge.py +0 -58
  10. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/LICENSE +0 -0
  11. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/README.md +0 -0
  12. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/__init__.py +0 -0
  13. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/command/__init__.py +0 -0
  14. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/command/builtin/__init__.py +0 -0
  15. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/command/builtin/clear.py +0 -0
  16. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/command/builtin/compact.py +0 -0
  17. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/command/builtin/memory.py +0 -0
  18. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/command/builtin/reload_plugins.py +0 -0
  19. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/command/context.py +0 -0
  20. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/command/dispatcher.py +0 -0
  21. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/command/registry.py +0 -0
  22. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/command/result.py +0 -0
  23. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/command/types.py +0 -0
  24. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/config/__init__.py +0 -0
  25. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/config/model_profiles.yaml +0 -0
  26. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/config/model_profiles.yaml.example +0 -0
  27. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/loop/__init__.py +0 -0
  28. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/loop/config/__init__.py +0 -0
  29. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/loop/config/agent_config.py +0 -0
  30. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/loop/config/agent_loop_config.py +0 -0
  31. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/loop/config/model_context_resolver.py +0 -0
  32. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/loop/config/runtime_settings.py +0 -0
  33. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/loop/config/token_estimator.py +0 -0
  34. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/loop/context/__init__.py +0 -0
  35. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/loop/context/blocking_guard.py +0 -0
  36. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/loop/context/compaction_service.py +0 -0
  37. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/loop/context/message_utils.py +0 -0
  38. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/loop/context/pipeline.py +0 -0
  39. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/loop/context/settings.py +0 -0
  40. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/loop/context/stages/__init__.py +0 -0
  41. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/loop/context/stages/autocompact.py +0 -0
  42. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/loop/context/stages/base.py +0 -0
  43. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/loop/context/stages/collapse.py +0 -0
  44. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/loop/context/stages/microcompact.py +0 -0
  45. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/loop/context/stages/noop.py +0 -0
  46. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/loop/context/stages/snip.py +0 -0
  47. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/loop/context/stages/tool_result_budget.py +0 -0
  48. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/loop/context/types.py +0 -0
  49. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/loop/exit/__init__.py +0 -0
  50. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/loop/exit/exit_logic.py +0 -0
  51. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/loop/exit/reason_codes.py +0 -0
  52. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/loop/graph/__init__.py +0 -0
  53. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/loop/graph/builtin_loop_control.py +0 -0
  54. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/loop/graph/factory.py +0 -0
  55. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/loop/graph/graph_edges.py +0 -0
  56. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/loop/hook/__init__.py +0 -0
  57. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/loop/hook/async_hook_runner.py +0 -0
  58. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/loop/hook/config.py +0 -0
  59. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/loop/hook/engine.py +0 -0
  60. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/loop/hook/executors/__init__.py +0 -0
  61. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/loop/hook/executors/agent.py +0 -0
  62. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/loop/hook/executors/command.py +0 -0
  63. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/loop/hook/executors/http.py +0 -0
  64. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/loop/hook/executors/prompt.py +0 -0
  65. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/loop/hook/graph_wiring.py +0 -0
  66. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/loop/hook/registry.py +0 -0
  67. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/loop/hook/trust.py +0 -0
  68. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/loop/hook/types.py +0 -0
  69. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/loop/injection/__init__.py +0 -0
  70. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/loop/injection/dedup.py +0 -0
  71. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/loop/loop_abort.py +0 -0
  72. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/loop/model/__init__.py +0 -0
  73. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/loop/model/orphan_tool_results.py +0 -0
  74. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/loop/model/retry_events.py +0 -0
  75. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/loop/model/retry_policy.py +0 -0
  76. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/loop/model/schema_and_format.py +0 -0
  77. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/loop/model/tool_and_model_binding.py +0 -0
  78. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/loop/model/tool_call_degradation_corrector.py +0 -0
  79. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/loop/model/tool_transcript_guard.py +0 -0
  80. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/loop/prompt/__init__.py +0 -0
  81. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/loop/prompt/builder.py +0 -0
  82. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/loop/prompt/builtin.py +0 -0
  83. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/loop/prompt/compact.py +0 -0
  84. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/loop/prompt/sections.py +0 -0
  85. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/loop/runtime/__init__.py +0 -0
  86. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/loop/runtime/context.py +0 -0
  87. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/loop/runtime/context_factory.py +0 -0
  88. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/loop/runtime/subagent_execution_paths.py +0 -0
  89. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/loop/subagent/__init__.py +0 -0
  90. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/loop/subagent/async_runner.py +0 -0
  91. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/loop/subagent/context.py +0 -0
  92. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/loop/subagent/fork_worktree_notice.py +0 -0
  93. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/loop/subagent/graph.py +0 -0
  94. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/loop/subagent/orchestrator.py +0 -0
  95. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/loop/subagent/progress.py +0 -0
  96. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/loop/subagent/prompt.py +0 -0
  97. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/loop/subagent/runner.py +0 -0
  98. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/loop/subagent/transcript.py +0 -0
  99. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/memory/__init__.py +0 -0
  100. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/memory/instruction/__init__.py +0 -0
  101. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/memory/instruction/loader.py +0 -0
  102. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/memory/instruction/resolver.py +0 -0
  103. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/memory/instruction/runtime.py +0 -0
  104. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/memory/instruction/sections.py +0 -0
  105. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/memory/instruction/types.py +0 -0
  106. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/memory/memdir/__init__.py +0 -0
  107. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/memory/memdir/age.py +0 -0
  108. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/memory/memdir/agent_memory.py +0 -0
  109. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/memory/memdir/extractor.py +0 -0
  110. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/memory/memdir/loader.py +0 -0
  111. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/memory/memdir/paths.py +0 -0
  112. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/memory/memdir/recall.py +0 -0
  113. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/memory/memdir/runtime.py +0 -0
  114. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/memory/memdir/scan.py +0 -0
  115. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/memory/memdir/types.py +0 -0
  116. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/memory/session/__init__.py +0 -0
  117. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/memory/session/compact_bridge.py +0 -0
  118. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/memory/session/prompts.py +0 -0
  119. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/memory/session/session_memory.py +0 -0
  120. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/observability/__init__.py +0 -0
  121. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/observability/evaluation/__init__.py +0 -0
  122. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/observability/evaluation/checkers/__init__.py +0 -0
  123. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/observability/evaluation/checkers/base.py +0 -0
  124. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/observability/evaluation/checkers/compaction.py +0 -0
  125. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/observability/evaluation/checkers/degradation.py +0 -0
  126. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/observability/evaluation/checkers/exit_quality.py +0 -0
  127. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/observability/evaluation/checkers/session_memory.py +0 -0
  128. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/observability/evaluation/checkers/tool_behavior.py +0 -0
  129. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/observability/evaluation/retention_scheduler.py +0 -0
  130. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/observability/evaluation/service.py +0 -0
  131. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/observability/evaluation/state.py +0 -0
  132. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/observability/evaluation/store.py +0 -0
  133. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/observability/events/__init__.py +0 -0
  134. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/observability/events/langchain_agentx_event_adapter.py +0 -0
  135. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/observability/logging/__init__.py +0 -0
  136. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/observability/logging/debug_burst.py +0 -0
  137. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/observability/logging/logging_config.py +0 -0
  138. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/observability/logging/logging_contract.py +0 -0
  139. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/observability/replay/__init__.py +0 -0
  140. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/observability/replay/cli.py +0 -0
  141. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/observability/replay/service.py +0 -0
  142. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/observability/replay/store.py +0 -0
  143. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/observability/replay/ui.py +0 -0
  144. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/observability/trace/__init__.py +0 -0
  145. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/observability/trace/collector.py +0 -0
  146. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/observability/trace/event_emitter.py +0 -0
  147. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/observability/trace/hook_event_emitter.py +0 -0
  148. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/observability/trace/models.py +0 -0
  149. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/observability/trace/sqlite_store.py +0 -0
  150. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/observability/trace/trace_callback.py +0 -0
  151. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/observability/trace/trace_lifecycle_collector.py +0 -0
  152. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/plugin/__init__.py +0 -0
  153. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/plugin/builtin.py +0 -0
  154. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/plugin/config.py +0 -0
  155. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/plugin/loader.py +0 -0
  156. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/plugin/manifest.py +0 -0
  157. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/plugin/registries.py +0 -0
  158. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/plugin/types.py +0 -0
  159. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/provider/__init__.py +0 -0
  160. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/provider/anthropic.py +0 -0
  161. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/provider/env.py +0 -0
  162. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/provider/model_profile.py +0 -0
  163. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/provider/openai.py +0 -0
  164. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/session/__init__.py +0 -0
  165. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/session/agent_session.py +0 -0
  166. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/session/conversation_factory.py +0 -0
  167. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/session/conversation_recovery.py +0 -0
  168. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/session/conversation_session.py +0 -0
  169. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/session/factory.py +0 -0
  170. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/session/protocol.py +0 -0
  171. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/task_runtime/__init__.py +0 -0
  172. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/task_runtime/core/__init__.py +0 -0
  173. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/task_runtime/core/ids.py +0 -0
  174. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/task_runtime/core/interfaces.py +0 -0
  175. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/task_runtime/core/notification_priority.py +0 -0
  176. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/task_runtime/core/types.py +0 -0
  177. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/task_runtime/integrations/__init__.py +0 -0
  178. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/task_runtime/integrations/loop_adapter.py +0 -0
  179. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/task_runtime/integrations/loop_integration.py +0 -0
  180. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/task_runtime/integrations/prefetch_providers.py +0 -0
  181. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/task_runtime/integrations/provider_factory.py +0 -0
  182. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/task_runtime/integrations/queued_command_provider.py +0 -0
  183. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/task_runtime/integrations/sqlite_queued_command_provider.py +0 -0
  184. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/task_runtime/integrations/tool_use_summary_provider.py +0 -0
  185. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/task_runtime/orchestrator/__init__.py +0 -0
  186. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/task_runtime/orchestrator/runtime.py +0 -0
  187. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/task_runtime/output/__init__.py +0 -0
  188. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/task_runtime/output/sink.py +0 -0
  189. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/task_runtime/policy/__init__.py +0 -0
  190. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/task_runtime/policy/withhold_visibility.py +0 -0
  191. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/task_runtime/queue/__init__.py +0 -0
  192. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/task_runtime/queue/in_memory.py +0 -0
  193. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/task_runtime/skill_prefetch/__init__.py +0 -0
  194. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/task_runtime/skill_prefetch/attachments.py +0 -0
  195. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/task_runtime/skill_prefetch/models.py +0 -0
  196. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/task_runtime/skill_prefetch/provider.py +0 -0
  197. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/task_runtime/store/__init__.py +0 -0
  198. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/task_runtime/store/in_memory.py +0 -0
  199. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/task_runtime/store/sqlite_store.py +0 -0
  200. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/task_runtime/tasklist/__init__.py +0 -0
  201. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/task_runtime/tasklist/high_water_mark.py +0 -0
  202. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/task_runtime/tasklist/lock.py +0 -0
  203. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/task_runtime/tasklist/models.py +0 -0
  204. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/task_runtime/tasklist/path_resolver.py +0 -0
  205. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/task_runtime/tasklist/store.py +0 -0
  206. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/task_runtime/tasks/__init__.py +0 -0
  207. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/task_runtime/tasks/ai_analysis/__init__.py +0 -0
  208. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/task_runtime/tasks/ai_analysis/base.py +0 -0
  209. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/task_runtime/tasks/ai_analysis/evaluation.py +0 -0
  210. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/task_runtime/tasks/ai_analysis/registry.py +0 -0
  211. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/task_runtime/tasks/ai_analysis/scheduler.py +0 -0
  212. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/task_runtime/tasks/base/__init__.py +0 -0
  213. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/task_runtime/tasks/base/contracts.py +0 -0
  214. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/task_runtime/tasks/custom/__init__.py +0 -0
  215. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/task_runtime/tasks/custom/executor.py +0 -0
  216. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/task_runtime/tasks/custom/notification.py +0 -0
  217. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/task_runtime/tasks/custom/semantics.py +0 -0
  218. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/task_runtime/tasks/custom/spec.py +0 -0
  219. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/task_runtime/tasks/dream_task/__init__.py +0 -0
  220. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/task_runtime/tasks/dream_task/executor.py +0 -0
  221. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/task_runtime/tasks/dream_task/notification.py +0 -0
  222. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/task_runtime/tasks/dream_task/semantics.py +0 -0
  223. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/task_runtime/tasks/dream_task/spec.py +0 -0
  224. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/task_runtime/tasks/dream_task/state.py +0 -0
  225. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/task_runtime/tasks/in_process_teammate/__init__.py +0 -0
  226. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/task_runtime/tasks/in_process_teammate/executor.py +0 -0
  227. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/task_runtime/tasks/in_process_teammate/notification.py +0 -0
  228. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/task_runtime/tasks/in_process_teammate/semantics.py +0 -0
  229. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/task_runtime/tasks/in_process_teammate/spec.py +0 -0
  230. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/task_runtime/tasks/local_agent/__init__.py +0 -0
  231. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/task_runtime/tasks/local_agent/executor.py +0 -0
  232. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/task_runtime/tasks/local_agent/notification.py +0 -0
  233. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/task_runtime/tasks/local_agent/runner.py +0 -0
  234. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/task_runtime/tasks/local_agent/semantics.py +0 -0
  235. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/task_runtime/tasks/local_agent/spec.py +0 -0
  236. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/task_runtime/tasks/local_bash/__init__.py +0 -0
  237. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/task_runtime/tasks/local_bash/executor.py +0 -0
  238. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/task_runtime/tasks/local_bash/notification.py +0 -0
  239. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/task_runtime/tasks/local_bash/semantics.py +0 -0
  240. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/task_runtime/tasks/local_bash/spec.py +0 -0
  241. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/task_runtime/tasks/remote_agent/__init__.py +0 -0
  242. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/task_runtime/tasks/remote_agent/backend.py +0 -0
  243. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/task_runtime/tasks/remote_agent/executor.py +0 -0
  244. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/task_runtime/tasks/remote_agent/notification.py +0 -0
  245. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/task_runtime/tasks/remote_agent/semantics.py +0 -0
  246. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/task_runtime/tasks/remote_agent/spec.py +0 -0
  247. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/task_runtime/tasks/trace_cleanup/__init__.py +0 -0
  248. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/task_runtime/tasks/trace_cleanup/bootstrap.py +0 -0
  249. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/task_runtime/tasks/trace_cleanup/executor.py +0 -0
  250. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/task_runtime/tasks/trace_cleanup/scheduler.py +0 -0
  251. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tool_runtime/__init__.py +0 -0
  252. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tool_runtime/adapter.py +0 -0
  253. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tool_runtime/base.py +0 -0
  254. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tool_runtime/errors.py +0 -0
  255. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tool_runtime/identical_call_cache.py +0 -0
  256. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tool_runtime/loader.py +0 -0
  257. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tool_runtime/models.py +0 -0
  258. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tool_runtime/permission_context.py +0 -0
  259. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tool_runtime/pipeline.py +0 -0
  260. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tool_runtime/policy.py +0 -0
  261. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tool_runtime/registry.py +0 -0
  262. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tool_runtime/resolvers/__init__.py +0 -0
  263. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tool_runtime/resolvers/agent_session.py +0 -0
  264. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tool_runtime/resolvers/background.py +0 -0
  265. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tool_runtime/resolvers/base.py +0 -0
  266. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tool_runtime/resolvers/conversation.py +0 -0
  267. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tool_runtime/resolvers/workflow.py +0 -0
  268. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tool_runtime/session_store.py +0 -0
  269. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tool_runtime/smoke_test_runtime.py +0 -0
  270. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tool_runtime/state_bridge.py +0 -0
  271. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/__init__.py +0 -0
  272. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/agent/__init__.py +0 -0
  273. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/agent/backend.py +0 -0
  274. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/agent/built_in/__init__.py +0 -0
  275. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/agent/built_in/agentx_guide.py +0 -0
  276. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/agent/built_in/explore.py +0 -0
  277. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/agent/built_in/general.py +0 -0
  278. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/agent/built_in/plan.py +0 -0
  279. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/agent/built_in/statusline_setup.py +0 -0
  280. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/agent/built_in/verification.py +0 -0
  281. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/agent/builtin_subagent_loader.py +0 -0
  282. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/agent/cwd_resolution.py +0 -0
  283. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/agent/limits.py +0 -0
  284. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/agent/loader.py +0 -0
  285. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/agent/models.py +0 -0
  286. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/agent/prompt.py +0 -0
  287. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/agent/registry/__init__.py +0 -0
  288. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/agent/registry/config.py +0 -0
  289. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/agent/registry/registry.py +0 -0
  290. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/agent/scope.py +0 -0
  291. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/agent/tool.py +0 -0
  292. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/ask_user_question/__init__.py +0 -0
  293. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/ask_user_question/constants.py +0 -0
  294. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/ask_user_question/html_preview.py +0 -0
  295. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/ask_user_question/models.py +0 -0
  296. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/ask_user_question/prompt.py +0 -0
  297. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/ask_user_question/tool.py +0 -0
  298. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/ask_user_question/validators.py +0 -0
  299. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/bash/__init__.py +0 -0
  300. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/bash/ast_security.py +0 -0
  301. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/bash/backend.py +0 -0
  302. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/bash/bash_hardening.py +0 -0
  303. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/bash/bash_runtime_contract.py +0 -0
  304. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/bash/cwd_reporter.py +0 -0
  305. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/bash/limits.py +0 -0
  306. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/bash/mode_validation.py +0 -0
  307. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/bash/models.py +0 -0
  308. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/bash/observability.py +0 -0
  309. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/bash/output_utils.py +0 -0
  310. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/bash/path_security.py +0 -0
  311. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/bash/prompt.py +0 -0
  312. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/bash/read_only_validation.py +0 -0
  313. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/bash/result_presenter.py +0 -0
  314. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/bash/sandbox_decision.py +0 -0
  315. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/bash/security.py +0 -0
  316. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/bash/sed_edit_parser.py +0 -0
  317. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/bash/sed_validation.py +0 -0
  318. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/bash/semantics.py +0 -0
  319. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/bash/session_manager.py +0 -0
  320. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/bash/session_runtime.py +0 -0
  321. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/bash/shell_locator.py +0 -0
  322. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/bash/task_runtime.py +0 -0
  323. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/bash/tool.py +0 -0
  324. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/bash/windows_shell_quoting.py +0 -0
  325. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/edit/__init__.py +0 -0
  326. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/edit/backend.py +0 -0
  327. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/edit/batch_tool.py +0 -0
  328. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/edit/diff_generator.py +0 -0
  329. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/edit/git_diff_generator.py +0 -0
  330. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/edit/limits.py +0 -0
  331. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/edit/models.py +0 -0
  332. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/edit/prompt.py +0 -0
  333. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/edit/quote_match.py +0 -0
  334. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/edit/quote_normalizer.py +0 -0
  335. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/edit/settings_validator.py +0 -0
  336. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/edit/staleness.py +0 -0
  337. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/edit/tool.py +0 -0
  338. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/edit/validator.py +0 -0
  339. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/glob/__init__.py +0 -0
  340. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/glob/models.py +0 -0
  341. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/glob/pagination.py +0 -0
  342. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/glob/prompt.py +0 -0
  343. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/glob/rg_list_backend.py +0 -0
  344. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/glob/rg_pattern.py +0 -0
  345. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/glob/tool.py +0 -0
  346. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/grep/__init__.py +0 -0
  347. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/grep/backend.py +0 -0
  348. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/grep/models.py +0 -0
  349. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/grep/prompt.py +0 -0
  350. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/grep/rg_subprocess_controller.py +0 -0
  351. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/grep/tool.py +0 -0
  352. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/read/__init__.py +0 -0
  353. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/read/backend.py +0 -0
  354. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/read/limits.py +0 -0
  355. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/read/models.py +0 -0
  356. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/read/prompt.py +0 -0
  357. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/read/tool.py +0 -0
  358. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/ripgrep_plugin_exclusions.py +0 -0
  359. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/skill/__init__.py +0 -0
  360. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/skill/argument_substitution.py +0 -0
  361. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/skill/loader.py +0 -0
  362. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/skill/models.py +0 -0
  363. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/skill/policy.py +0 -0
  364. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/skill/prompt.py +0 -0
  365. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/skill/tool.py +0 -0
  366. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/task_create/__init__.py +0 -0
  367. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/task_create/hooks.py +0 -0
  368. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/task_create/limits.py +0 -0
  369. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/task_create/models.py +0 -0
  370. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/task_create/prompt.py +0 -0
  371. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/task_create/tool.py +0 -0
  372. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/task_get/__init__.py +0 -0
  373. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/task_get/models.py +0 -0
  374. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/task_get/prompt.py +0 -0
  375. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/task_get/tool.py +0 -0
  376. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/task_list/__init__.py +0 -0
  377. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/task_list/models.py +0 -0
  378. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/task_list/prompt.py +0 -0
  379. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/task_list/tool.py +0 -0
  380. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/task_update/__init__.py +0 -0
  381. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/task_update/hooks.py +0 -0
  382. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/task_update/models.py +0 -0
  383. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/task_update/prompt.py +0 -0
  384. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/task_update/tool.py +0 -0
  385. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/user_message/__init__.py +0 -0
  386. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/user_message/attachments.py +0 -0
  387. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/user_message/models.py +0 -0
  388. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/user_message/prompt.py +0 -0
  389. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/user_message/runtime_config.py +0 -0
  390. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/user_message/tool.py +0 -0
  391. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/write/__init__.py +0 -0
  392. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/write/backend.py +0 -0
  393. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/write/limits.py +0 -0
  394. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/write/models.py +0 -0
  395. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/write/prompt.py +0 -0
  396. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/write/tool.py +0 -0
  397. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/tools/write/validator.py +0 -0
  398. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/utils/__init__.py +0 -0
  399. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/utils/cwd.py +0 -0
  400. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/utils/host_platform.py +0 -0
  401. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/utils/path_hierarchy.py +0 -0
  402. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/utils/path_user_input.py +0 -0
  403. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/utils/rg_executable.py +0 -0
  404. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/utils/subprocess_text.py +0 -0
  405. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/utils/temp_paths.py +0 -0
  406. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/utils/unc_path.py +0 -0
  407. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/utils/win_reserved_paths.py +0 -0
  408. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/workflow/__init__.py +0 -0
  409. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/workflow/base.py +0 -0
  410. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/workflow/batch.py +0 -0
  411. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/workflow/dag.py +0 -0
  412. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/workflow/event_adapter/__init__.py +0 -0
  413. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/workflow/event_adapter/adapter.py +0 -0
  414. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/workflow/event_adapter/depth_resolver.py +0 -0
  415. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/workflow/event_adapter/handlers/__init__.py +0 -0
  416. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/workflow/event_adapter/handlers/parallel_handler.py +0 -0
  417. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/workflow/event_adapter/handlers/route_handler.py +0 -0
  418. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/workflow/event_adapter/handlers/stage_handler.py +0 -0
  419. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/workflow/event_adapter/stack.py +0 -0
  420. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/workflow/event_adapter/types.py +0 -0
  421. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/workflow/node.py +0 -0
  422. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/workflow/patterns/__init__.py +0 -0
  423. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/workflow/patterns/chaining.py +0 -0
  424. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/workflow/patterns/evaluator_optimizer.py +0 -0
  425. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/workflow/patterns/orchestrator.py +0 -0
  426. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/workflow/patterns/parallelization.py +0 -0
  427. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/workflow/patterns/routing.py +0 -0
  428. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/workflow/state.py +0 -0
  429. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/workspace/__init__.py +0 -0
  430. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/workspace/capabilities.py +0 -0
  431. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/workspace/config.py +0 -0
  432. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/workspace/path_key_normalizer.py +0 -0
  433. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/workspace/resolver.py +0 -0
  434. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx/workspace/validators.py +0 -0
  435. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx_python.egg-info/SOURCES.txt +0 -0
  436. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx_python.egg-info/dependency_links.txt +0 -0
  437. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx_python.egg-info/not-zip-safe +0 -0
  438. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx_python.egg-info/requires.txt +0 -0
  439. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/langchain_agentx_python.egg-info/top_level.txt +0 -0
  440. {langchain-agentx-python-0.2.5 → langchain-agentx-python-0.2.6}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: langchain-agentx-python
3
- Version: 0.2.5
3
+ Version: 0.2.6
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
@@ -42,7 +42,7 @@ from ..exit.reason_codes import (
42
42
  TRANSITION_WITHHOLD_RECOVERY_RETRY,
43
43
  )
44
44
  from .retrier import ModelCallRetrier, RetryContext
45
- from .retry_bridge import build_retry_event_commands
45
+ from .retry_bridge import emit_retry_events
46
46
  from .tool_and_model_binding import get_bound_model, handle_model_output
47
47
  from .tool_transcript_guard import repair_messages_for_llm_invoke
48
48
 
@@ -295,14 +295,13 @@ class ModelNode(Runnable):
295
295
  compaction_settings=self._compaction_settings,
296
296
  )
297
297
  if synth is not None:
298
- model_response, retry_event_commands = synth, []
298
+ model_response = synth
299
299
  else:
300
- model_response, retry_event_commands = self._run_sync(request, state, config=config)
300
+ model_response, _ = self._run_sync(request, state, config=config)
301
301
 
302
302
  return self._build_state_update(
303
303
  state=state,
304
304
  model_response=model_response,
305
- retry_event_commands=retry_event_commands,
306
305
  mode="sync",
307
306
  )
308
307
 
@@ -319,14 +318,13 @@ class ModelNode(Runnable):
319
318
  compaction_settings=self._compaction_settings,
320
319
  )
321
320
  if synth is not None:
322
- model_response, retry_event_commands = synth, []
321
+ model_response = synth
323
322
  else:
324
- model_response, retry_event_commands = await self._arun_async(request, state, config=config)
323
+ model_response, _ = await self._arun_async(request, state, config=config)
325
324
 
326
325
  return self._build_state_update(
327
326
  state=state,
328
327
  model_response=model_response,
329
- retry_event_commands=retry_event_commands,
330
328
  mode="async",
331
329
  )
332
330
 
@@ -463,10 +461,9 @@ class ModelNode(Runnable):
463
461
  config: RunnableConfig | None = None,
464
462
  ) -> tuple[Any, list[Command]]:
465
463
  """同步重试与降级执行。"""
466
- retry_event_commands: list[Command] = []
467
464
  try:
468
465
  if self._retrier is None:
469
- return self._invoke_bound(request, config=config), retry_event_commands
466
+ return self._invoke_bound(request, config=config), []
470
467
  retry_ctx = RetryContext(
471
468
  scope="background" if state.get("retry_scope") == "background" else "foreground"
472
469
  )
@@ -474,11 +471,11 @@ class ModelNode(Runnable):
474
471
  lambda: self._invoke_bound(request, config=config),
475
472
  context=retry_ctx,
476
473
  )
477
- retry_event_commands = build_retry_event_commands(retry_result.events)
478
- return retry_result.value, retry_event_commands
474
+ emit_retry_events(retry_result.events)
475
+ return retry_result.value, []
479
476
  except Exception as primary_exc:
480
477
  if self._fallback_model is None:
481
- return _synthetic_api_error_model_response(primary_exc, self._name), retry_event_commands
478
+ return _synthetic_api_error_model_response(primary_exc, self._name), []
482
479
  logger.warning(
483
480
  "Primary model invoke failed; retrying once with fallback_model",
484
481
  exc_info=True,
@@ -486,15 +483,15 @@ class ModelNode(Runnable):
486
483
  req_fb = request.override(model=self._fallback_model)
487
484
  try:
488
485
  if self._retrier is None:
489
- return self._invoke_bound(req_fb, config=config), retry_event_commands
486
+ return self._invoke_bound(req_fb, config=config), []
490
487
  fb_result = self._retrier.invoke(
491
488
  lambda: self._invoke_bound(req_fb, config=config),
492
489
  context=retry_ctx,
493
490
  )
494
- retry_event_commands.extend(build_retry_event_commands(fb_result.events))
495
- return fb_result.value, retry_event_commands
491
+ emit_retry_events(fb_result.events)
492
+ return fb_result.value, []
496
493
  except Exception as fb_exc:
497
- return _synthetic_api_error_model_response(fb_exc, self._name), retry_event_commands
494
+ return _synthetic_api_error_model_response(fb_exc, self._name), []
498
495
 
499
496
  async def _arun_async(
500
497
  self,
@@ -504,10 +501,9 @@ class ModelNode(Runnable):
504
501
  config: RunnableConfig | None = None,
505
502
  ) -> tuple[Any, list[Command]]:
506
503
  """异步重试与降级执行。"""
507
- retry_event_commands: list[Command] = []
508
504
  try:
509
505
  if self._retrier is None:
510
- return await self._ainvoke_bound(request, config=config), retry_event_commands
506
+ return await self._ainvoke_bound(request, config=config), []
511
507
  retry_ctx = RetryContext(
512
508
  scope="background" if state.get("retry_scope") == "background" else "foreground"
513
509
  )
@@ -515,11 +511,11 @@ class ModelNode(Runnable):
515
511
  lambda: self._ainvoke_bound(request, config=config),
516
512
  context=retry_ctx,
517
513
  )
518
- retry_event_commands = build_retry_event_commands(retry_result.events)
519
- return retry_result.value, retry_event_commands
514
+ emit_retry_events(retry_result.events)
515
+ return retry_result.value, []
520
516
  except Exception as primary_exc:
521
517
  if self._fallback_model is None:
522
- return _synthetic_api_error_model_response(primary_exc, self._name), retry_event_commands
518
+ return _synthetic_api_error_model_response(primary_exc, self._name), []
523
519
  logger.warning(
524
520
  "Primary model ainvoke failed; retrying once with fallback_model",
525
521
  exc_info=True,
@@ -527,15 +523,15 @@ class ModelNode(Runnable):
527
523
  req_fb = request.override(model=self._fallback_model)
528
524
  try:
529
525
  if self._retrier is None:
530
- return await self._ainvoke_bound(req_fb, config=config), retry_event_commands
526
+ return await self._ainvoke_bound(req_fb, config=config), []
531
527
  fb_result = await self._retrier.ainvoke(
532
528
  lambda: self._ainvoke_bound(req_fb, config=config),
533
529
  context=retry_ctx,
534
530
  )
535
- retry_event_commands.extend(build_retry_event_commands(fb_result.events))
536
- return fb_result.value, retry_event_commands
531
+ emit_retry_events(fb_result.events)
532
+ return fb_result.value, []
537
533
  except Exception as fb_exc:
538
- return _synthetic_api_error_model_response(fb_exc, self._name), retry_event_commands
534
+ return _synthetic_api_error_model_response(fb_exc, self._name), []
539
535
 
540
536
  # ===== 退出逻辑与状态更新 =====
541
537
 
@@ -544,7 +540,6 @@ class ModelNode(Runnable):
544
540
  *,
545
541
  state: dict,
546
542
  model_response: Any,
547
- retry_event_commands: list[Command],
548
543
  mode: str,
549
544
  ) -> dict:
550
545
  """构建状态更新 + Command 列表。"""
@@ -584,7 +579,7 @@ class ModelNode(Runnable):
584
579
  base_state["structured_response"] = model_response.structured_response
585
580
  state_update["structured_response"] = model_response.structured_response
586
581
 
587
- return [*retry_event_commands, Command(update=base_state), Command(update=state_update)]
582
+ return [Command(update=base_state), Command(update=state_update)]
588
583
 
589
584
  def _find_last_ai_message(self, messages: list[Any]) -> AIMessage | None:
590
585
  for msg in reversed(messages):
@@ -37,7 +37,7 @@ from ..exit.reason_codes import (
37
37
  TRANSITION_WITHHOLD_RECOVERY_EXHAUSTED,
38
38
  TRANSITION_WITHHOLD_RECOVERY_RETRY,
39
39
  )
40
- from .retry_bridge import build_retry_event_commands
40
+ from .retry_bridge import emit_retry_events
41
41
  from .retrier import ModelCallRetrier, RetryContext
42
42
  from .tool_and_model_binding import get_bound_model, handle_model_output
43
43
  from .tool_transcript_guard import repair_messages_for_llm_invoke
@@ -200,7 +200,7 @@ class _ModelNodeBuilder:
200
200
  config: RunnableConfig | None = None,
201
201
  ) -> List[Command[Any]]:
202
202
  request = self._build_request(state, runtime)
203
- model_response, retry_event_commands = self._run_sync_with_retries(
203
+ model_response, _ = self._run_sync_with_retries(
204
204
  request,
205
205
  state,
206
206
  config=config,
@@ -208,7 +208,6 @@ class _ModelNodeBuilder:
208
208
  return self._build_commands_from_response(
209
209
  state=state,
210
210
  model_response=model_response,
211
- retry_event_commands=retry_event_commands,
212
211
  mode="sync",
213
212
  )
214
213
 
@@ -223,7 +222,7 @@ class _ModelNodeBuilder:
223
222
  config: RunnableConfig | None = None,
224
223
  ) -> List[Command[Any]]:
225
224
  request = self._build_request(state, runtime)
226
- model_response, retry_event_commands = await self._run_async_with_retries(
225
+ model_response, _ = await self._run_async_with_retries(
227
226
  request,
228
227
  state,
229
228
  config=config,
@@ -231,7 +230,6 @@ class _ModelNodeBuilder:
231
230
  return self._build_commands_from_response(
232
231
  state=state,
233
232
  model_response=model_response,
234
- retry_event_commands=retry_event_commands,
235
233
  mode="async",
236
234
  )
237
235
 
@@ -371,10 +369,9 @@ class _ModelNodeBuilder:
371
369
  )
372
370
  if synth is not None:
373
371
  return synth, []
374
- retry_event_commands: list[Command[Any]] = []
375
372
  try:
376
373
  if self._retrier is None:
377
- return self._invoke_bound_sync(request, config=config), retry_event_commands
374
+ return self._invoke_bound_sync(request, config=config), []
378
375
  retry_ctx = RetryContext(
379
376
  scope="background" if state.get("retry_scope") == "background" else "foreground"
380
377
  )
@@ -382,11 +379,11 @@ class _ModelNodeBuilder:
382
379
  lambda: self._invoke_bound_sync(request, config=config),
383
380
  context=retry_ctx,
384
381
  )
385
- retry_event_commands = build_retry_event_commands(retry_result.events)
386
- return retry_result.value, retry_event_commands
382
+ emit_retry_events(retry_result.events)
383
+ return retry_result.value, []
387
384
  except Exception as primary_exc:
388
385
  if self._fallback_model is None:
389
- return _synthetic_api_error_model_response(primary_exc, self._name), retry_event_commands
386
+ return _synthetic_api_error_model_response(primary_exc, self._name), []
390
387
  logger.warning(
391
388
  "Primary model invoke failed; retrying once with fallback_model",
392
389
  exc_info=True,
@@ -395,15 +392,15 @@ class _ModelNodeBuilder:
395
392
  req_fb.model = self._fallback_model
396
393
  try:
397
394
  if self._retrier is None:
398
- return self._invoke_bound_sync(req_fb, config=config), retry_event_commands
395
+ return self._invoke_bound_sync(req_fb, config=config), []
399
396
  fb_result = self._retrier.invoke(
400
397
  lambda: self._invoke_bound_sync(req_fb, config=config),
401
398
  context=retry_ctx,
402
399
  )
403
- retry_event_commands.extend(build_retry_event_commands(fb_result.events))
404
- return fb_result.value, retry_event_commands
400
+ emit_retry_events(fb_result.events)
401
+ return fb_result.value, []
405
402
  except Exception as fb_exc:
406
- return _synthetic_api_error_model_response(fb_exc, self._name), retry_event_commands
403
+ return _synthetic_api_error_model_response(fb_exc, self._name), []
407
404
 
408
405
  async def _run_async_with_retries(
409
406
  self,
@@ -421,10 +418,9 @@ class _ModelNodeBuilder:
421
418
  )
422
419
  if synth is not None:
423
420
  return synth, []
424
- retry_event_commands: list[Command[Any]] = []
425
421
  try:
426
422
  if self._retrier is None:
427
- return await self._invoke_bound_async(request, config=config), retry_event_commands
423
+ return await self._invoke_bound_async(request, config=config), []
428
424
  retry_ctx = RetryContext(
429
425
  scope="background" if state.get("retry_scope") == "background" else "foreground"
430
426
  )
@@ -432,11 +428,11 @@ class _ModelNodeBuilder:
432
428
  lambda: self._invoke_bound_async(request, config=config),
433
429
  context=retry_ctx,
434
430
  )
435
- retry_event_commands = build_retry_event_commands(retry_result.events)
436
- return retry_result.value, retry_event_commands
431
+ emit_retry_events(retry_result.events)
432
+ return retry_result.value, []
437
433
  except Exception as primary_exc:
438
434
  if self._fallback_model is None:
439
- return _synthetic_api_error_model_response(primary_exc, self._name), retry_event_commands
435
+ return _synthetic_api_error_model_response(primary_exc, self._name), []
440
436
  logger.warning(
441
437
  "Primary model ainvoke failed; retrying once with fallback_model",
442
438
  exc_info=True,
@@ -445,22 +441,21 @@ class _ModelNodeBuilder:
445
441
  req_fb.model = self._fallback_model
446
442
  try:
447
443
  if self._retrier is None:
448
- return await self._invoke_bound_async(req_fb, config=config), retry_event_commands
444
+ return await self._invoke_bound_async(req_fb, config=config), []
449
445
  fb_result = await self._retrier.ainvoke(
450
446
  lambda: self._invoke_bound_async(req_fb, config=config),
451
447
  context=retry_ctx,
452
448
  )
453
- retry_event_commands.extend(build_retry_event_commands(fb_result.events))
454
- return fb_result.value, retry_event_commands
449
+ emit_retry_events(fb_result.events)
450
+ return fb_result.value, []
455
451
  except Exception as fb_exc:
456
- return _synthetic_api_error_model_response(fb_exc, self._name), retry_event_commands
452
+ return _synthetic_api_error_model_response(fb_exc, self._name), []
457
453
 
458
454
  def _build_commands_from_response(
459
455
  self,
460
456
  *,
461
457
  state: AgentState[Any],
462
458
  model_response: Any,
463
- retry_event_commands: list[Command[Any]],
464
459
  mode: str,
465
460
  ) -> List[Command[Any]]:
466
461
  last_ai_message = self._find_last_ai_message(model_response.result)
@@ -498,7 +493,7 @@ class _ModelNodeBuilder:
498
493
  if model_response.structured_response is not None:
499
494
  base_state["structured_response"] = model_response.structured_response
500
495
  state_update["structured_response"] = model_response.structured_response
501
- return [*retry_event_commands, Command(update=base_state), Command(update=state_update)]
496
+ return [Command(update=base_state), Command(update=state_update)]
502
497
 
503
498
  def _find_last_ai_message(self, messages: list[Any]) -> AIMessage | None:
504
499
  for msg in reversed(messages):
@@ -92,15 +92,18 @@ class RetryClassifier:
92
92
  @dataclass(slots=True)
93
93
  class ModelRetryConfig:
94
94
  max_retries: int = 10
95
- initial_delay: float = 0.5
95
+ initial_delay: float = 2.0
96
96
  backoff_factor: float = 2.0
97
- max_delay: float = 32.0
97
+ max_delay: float = 60.0
98
98
  jitter: bool = True
99
99
  heartbeat_threshold_seconds: float = 30.0
100
100
  heartbeat_interval_seconds: float = 30.0
101
101
  retry_on: Callable[[Exception], bool] = default_retry_on
102
102
  allow_background_529_retry: bool = False
103
103
  auth_recovery_handler: AuthRecoveryHandler | None = None
104
+ # Fallback 机制:连续 N 次 429/529 后触发 fallback
105
+ max_consecutive_rate_limit: int = 3
106
+ fallback_model: Any | None = None
104
107
 
105
108
 
106
109
  @dataclass(slots=True)
@@ -0,0 +1,56 @@
1
+ """
2
+ 模型重试事件处理。
3
+
4
+ 职责:
5
+ - 将 retrier 产出的事件记录到日志
6
+ - 不再写入 messages state,避免污染 LLM 上下文
7
+ - 事件通过 trace/observability 通道对外暴露(由外部系统订阅)
8
+
9
+ 重要变更:
10
+ 旧版本将重试事件转为 SystemMessage 写入 state,导致:
11
+ - LLM 上下文被大量重试提示污染
12
+ - _strip_system_messages_from_state 需要额外处理这些消息
13
+
14
+ 新版本仅记录日志和返回事件数据,由外部系统(如 trace 包)决定如何展示。
15
+ """
16
+
17
+ from __future__ import annotations
18
+
19
+ import logging
20
+ from typing import Iterable
21
+
22
+ from .retry_events import ModelRetryEvent
23
+
24
+ logger = logging.getLogger(__name__)
25
+
26
+
27
+ def _format_retry_event_message(event: ModelRetryEvent) -> str:
28
+ """格式化重试事件为可读字符串。"""
29
+ seconds = max(0, int(round(event.retry_in_ms / 1000)))
30
+ if event.event_type == "heartbeat":
31
+ prefix = "Retry still pending"
32
+ else:
33
+ prefix = "Retry scheduled"
34
+ return (
35
+ f"[{prefix}] in {seconds}s "
36
+ f"(attempt {event.attempt}/{event.max_retries}) "
37
+ f"{event.error_type}: {event.error_message}"
38
+ )
39
+
40
+
41
+ def emit_retry_events(events: Iterable[ModelRetryEvent]) -> None:
42
+ """
43
+ 发出重试事件(记录日志 + 返回原始事件数据)。
44
+
45
+ 不再返回 Command,避免重试事件写入 messages state。
46
+ 外部系统可通过 observability/trace 通道订阅这些事件。
47
+
48
+ Args:
49
+ events: 重试事件列表
50
+ """
51
+ for event in events:
52
+ msg = _format_retry_event_message(event)
53
+ logger.info("[ModelRetry] %s", msg)
54
+
55
+
56
+ __all__ = ["emit_retry_events", "_format_retry_event_message"]
@@ -29,7 +29,26 @@ from langchain_openai import ChatOpenAI
29
29
 
30
30
 
31
31
  class CompatibleChatOpenAI(ChatOpenAI):
32
- """OpenAI 兼容 ChatModel 封装(支持 reasoning_content)。"""
32
+ """OpenAI 兼容 ChatModel 封装(支持 reasoning_content)。
33
+
34
+ 重要:本类默认禁用 OpenAI SDK 内置重试(max_retries=0),由外层 ModelCallRetrier
35
+ 统一管理重试逻辑,避免双层重试导致请求放大问题。
36
+ """
37
+
38
+ def __init__(
39
+ self,
40
+ max_retries: int = 0,
41
+ **kwargs: Any,
42
+ ) -> None:
43
+ """
44
+ 初始化 CompatibleChatOpenAI。
45
+
46
+ Args:
47
+ max_retries: OpenAI SDK 内置重试次数,默认 0(由外层 ModelCallRetrier 接管)。
48
+ 如需启用 SDK 内置重试,显式传入 max_retries > 0。
49
+ **kwargs: 传递给 ChatOpenAI 的其他参数。
50
+ """
51
+ super().__init__(max_retries=max_retries, **kwargs)
33
52
 
34
53
  def _get_request_payload(
35
54
  self,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: langchain-agentx-python
3
- Version: 0.2.5
3
+ Version: 0.2.6
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
@@ -4,7 +4,7 @@
4
4
 
5
5
  [project]
6
6
  name = "langchain-agentx-python"
7
- version = "0.2.5"
7
+ version = "0.2.6"
8
8
  description = "LangChain/LangGraph-based agent utilities for CodeBaseX."
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.11"
@@ -1,58 +0,0 @@
1
- """
2
- 模型重试事件到 loop message 的桥接。
3
-
4
- 职责:
5
- - 将 retrier 产出的事件转为 SystemMessage
6
- - 由 model_node 统一并入 Command(update={"messages": ...})
7
- """
8
-
9
- from __future__ import annotations
10
-
11
- from typing import Iterable
12
-
13
- from langchain_core.messages import SystemMessage
14
- from langgraph.types import Command
15
-
16
- from .retry_events import (
17
- RETRY_EVENT_METADATA_FLAG,
18
- RETRY_EVENT_SUBTYPE,
19
- ModelRetryEvent,
20
- )
21
-
22
-
23
- def _format_retry_event_message(event: ModelRetryEvent) -> str:
24
- seconds = max(0, int(round(event.retry_in_ms / 1000)))
25
- if event.event_type == "heartbeat":
26
- prefix = "Retry still pending"
27
- else:
28
- prefix = "Retry scheduled"
29
- return (
30
- f"[{prefix}] in {seconds}s "
31
- f"(attempt {event.attempt}/{event.max_retries}) "
32
- f"{event.error_type}: {event.error_message}"
33
- )
34
-
35
-
36
- def build_retry_event_commands(events: Iterable[ModelRetryEvent]) -> list[Command]:
37
- commands: list[Command] = []
38
- for event in events:
39
- msg = SystemMessage(
40
- content=_format_retry_event_message(event),
41
- response_metadata={
42
- RETRY_EVENT_METADATA_FLAG: True,
43
- "subtype": RETRY_EVENT_SUBTYPE,
44
- "event_type": event.event_type,
45
- "retry_in_ms": event.retry_in_ms,
46
- "attempt": event.attempt,
47
- "max_retries": event.max_retries,
48
- "error": {
49
- "type": event.error_type,
50
- "message": event.error_message,
51
- },
52
- },
53
- )
54
- commands.append(Command(update={"messages": [msg]}))
55
- return commands
56
-
57
-
58
- __all__ = ["build_retry_event_commands"]