langchain-agentx-python 0.3.2__tar.gz → 0.3.4__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 (457) hide show
  1. {langchain-agentx-python-0.3.2/langchain_agentx_python.egg-info → langchain-agentx-python-0.3.4}/PKG-INFO +1 -1
  2. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/loop/context/__init__.py +4 -0
  3. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/loop/context/compaction_service.py +22 -1
  4. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/loop/context/pipeline.py +81 -1
  5. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/loop/context/stages/autocompact.py +113 -1
  6. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/loop/context/stages/base.py +9 -0
  7. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/loop/context/types.py +27 -0
  8. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/loop/graph/factory.py +13 -9
  9. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/loop/model/model_node.py +16 -1
  10. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/memory/session/compact_bridge.py +20 -10
  11. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/session/agent_session.py +18 -2
  12. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4/langchain_agentx_python.egg-info}/PKG-INFO +1 -1
  13. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/pyproject.toml +1 -1
  14. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/LICENSE +0 -0
  15. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/README.md +0 -0
  16. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/__init__.py +0 -0
  17. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/command/__init__.py +0 -0
  18. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/command/builtin/__init__.py +0 -0
  19. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/command/builtin/clear.py +0 -0
  20. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/command/builtin/compact.py +0 -0
  21. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/command/builtin/memory.py +0 -0
  22. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/command/builtin/reload_plugins.py +0 -0
  23. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/command/context.py +0 -0
  24. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/command/dispatcher.py +0 -0
  25. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/command/registry.py +0 -0
  26. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/command/result.py +0 -0
  27. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/command/types.py +0 -0
  28. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/config/__init__.py +0 -0
  29. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/config/model_profiles.yaml +0 -0
  30. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/config/model_profiles.yaml.example +0 -0
  31. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/loop/__init__.py +0 -0
  32. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/loop/config/__init__.py +0 -0
  33. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/loop/config/agent_config.py +0 -0
  34. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/loop/config/agent_loop_config.py +0 -0
  35. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/loop/config/model_context_resolver.py +0 -0
  36. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/loop/config/runtime_settings.py +0 -0
  37. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/loop/config/token_estimator.py +0 -0
  38. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/loop/context/blocking_guard.py +0 -0
  39. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/loop/context/message_utils.py +0 -0
  40. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/loop/context/settings.py +0 -0
  41. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/loop/context/stages/__init__.py +0 -0
  42. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/loop/context/stages/collapse.py +0 -0
  43. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/loop/context/stages/microcompact.py +0 -0
  44. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/loop/context/stages/noop.py +0 -0
  45. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/loop/context/stages/snip.py +0 -0
  46. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/loop/context/stages/tool_result_budget.py +0 -0
  47. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/loop/exit/__init__.py +0 -0
  48. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/loop/exit/exit_logic.py +0 -0
  49. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/loop/exit/reason_codes.py +0 -0
  50. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/loop/graph/__init__.py +0 -0
  51. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/loop/graph/builtin_loop_control.py +0 -0
  52. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/loop/graph/graph_edges.py +0 -0
  53. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/loop/hook/__init__.py +0 -0
  54. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/loop/hook/async_hook_runner.py +0 -0
  55. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/loop/hook/config.py +0 -0
  56. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/loop/hook/engine.py +0 -0
  57. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/loop/hook/executors/__init__.py +0 -0
  58. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/loop/hook/executors/agent.py +0 -0
  59. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/loop/hook/executors/command.py +0 -0
  60. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/loop/hook/executors/http.py +0 -0
  61. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/loop/hook/executors/prompt.py +0 -0
  62. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/loop/hook/graph_wiring.py +0 -0
  63. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/loop/hook/registry.py +0 -0
  64. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/loop/hook/trust.py +0 -0
  65. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/loop/hook/types.py +0 -0
  66. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/loop/injection/__init__.py +0 -0
  67. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/loop/injection/dedup.py +0 -0
  68. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/loop/loop_abort.py +0 -0
  69. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/loop/model/__init__.py +0 -0
  70. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/loop/model/model_nodes.py +0 -0
  71. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/loop/model/orphan_tool_results.py +0 -0
  72. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/loop/model/retrier.py +0 -0
  73. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/loop/model/retry_bridge.py +0 -0
  74. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/loop/model/retry_events.py +0 -0
  75. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/loop/model/retry_policy.py +0 -0
  76. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/loop/model/schema_and_format.py +0 -0
  77. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/loop/model/tool_and_model_binding.py +0 -0
  78. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/loop/model/tool_call_degradation_corrector.py +0 -0
  79. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/loop/model/tool_transcript_guard.py +0 -0
  80. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/loop/prompt/__init__.py +0 -0
  81. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/loop/prompt/builder.py +0 -0
  82. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/loop/prompt/builtin.py +0 -0
  83. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/loop/prompt/compact.py +0 -0
  84. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/loop/prompt/sections.py +0 -0
  85. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/loop/prompt/session_context.py +0 -0
  86. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/loop/runtime/__init__.py +0 -0
  87. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/loop/runtime/context.py +0 -0
  88. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/loop/runtime/context_factory.py +0 -0
  89. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/loop/runtime/subagent_execution_paths.py +0 -0
  90. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/loop/subagent/__init__.py +0 -0
  91. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/loop/subagent/async_runner.py +0 -0
  92. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/loop/subagent/context.py +0 -0
  93. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/loop/subagent/fork_worktree_notice.py +0 -0
  94. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/loop/subagent/graph.py +0 -0
  95. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/loop/subagent/orchestrator.py +0 -0
  96. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/loop/subagent/progress.py +0 -0
  97. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/loop/subagent/prompt.py +0 -0
  98. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/loop/subagent/runner.py +0 -0
  99. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/loop/subagent/transcript.py +0 -0
  100. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/memory/__init__.py +0 -0
  101. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/memory/instruction/__init__.py +0 -0
  102. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/memory/instruction/loader.py +0 -0
  103. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/memory/instruction/resolver.py +0 -0
  104. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/memory/instruction/runtime.py +0 -0
  105. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/memory/instruction/sections.py +0 -0
  106. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/memory/instruction/types.py +0 -0
  107. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/memory/memdir/__init__.py +0 -0
  108. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/memory/memdir/age.py +0 -0
  109. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/memory/memdir/agent_memory.py +0 -0
  110. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/memory/memdir/extractor.py +0 -0
  111. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/memory/memdir/loader.py +0 -0
  112. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/memory/memdir/paths.py +0 -0
  113. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/memory/memdir/recall.py +0 -0
  114. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/memory/memdir/runtime.py +0 -0
  115. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/memory/memdir/scan.py +0 -0
  116. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/memory/memdir/types.py +0 -0
  117. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/memory/session/__init__.py +0 -0
  118. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/memory/session/prompts.py +0 -0
  119. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/memory/session/session_memory.py +0 -0
  120. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/observability/__init__.py +0 -0
  121. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/observability/evaluation/__init__.py +0 -0
  122. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/observability/evaluation/checkers/__init__.py +0 -0
  123. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/observability/evaluation/checkers/base.py +0 -0
  124. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/observability/evaluation/checkers/compaction.py +0 -0
  125. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/observability/evaluation/checkers/degradation.py +0 -0
  126. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/observability/evaluation/checkers/exit_quality.py +0 -0
  127. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/observability/evaluation/checkers/session_memory.py +0 -0
  128. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/observability/evaluation/checkers/tool_behavior.py +0 -0
  129. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/observability/evaluation/retention_scheduler.py +0 -0
  130. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/observability/evaluation/service.py +0 -0
  131. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/observability/evaluation/state.py +0 -0
  132. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/observability/evaluation/store.py +0 -0
  133. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/observability/events/__init__.py +0 -0
  134. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/observability/events/langchain_agentx_event_adapter.py +0 -0
  135. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/observability/logging/__init__.py +0 -0
  136. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/observability/logging/debug_burst.py +0 -0
  137. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/observability/logging/logging_config.py +0 -0
  138. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/observability/logging/logging_contract.py +0 -0
  139. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/observability/replay/__init__.py +0 -0
  140. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/observability/replay/cli.py +0 -0
  141. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/observability/replay/service.py +0 -0
  142. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/observability/replay/store.py +0 -0
  143. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/observability/replay/ui.py +0 -0
  144. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/observability/trace/__init__.py +0 -0
  145. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/observability/trace/collector.py +0 -0
  146. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/observability/trace/event_emitter.py +0 -0
  147. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/observability/trace/hook_event_emitter.py +0 -0
  148. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/observability/trace/models.py +0 -0
  149. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/observability/trace/sqlite_store.py +0 -0
  150. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/observability/trace/trace_callback.py +0 -0
  151. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/observability/trace/trace_lifecycle_collector.py +0 -0
  152. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/plugin/__init__.py +0 -0
  153. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/plugin/builtin.py +0 -0
  154. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/plugin/config.py +0 -0
  155. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/plugin/loader.py +0 -0
  156. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/plugin/manifest.py +0 -0
  157. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/plugin/registries.py +0 -0
  158. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/plugin/types.py +0 -0
  159. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/provider/__init__.py +0 -0
  160. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/provider/anthropic.py +0 -0
  161. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/provider/compatible_chat_openai.py +0 -0
  162. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/provider/env.py +0 -0
  163. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/provider/model_profile.py +0 -0
  164. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/provider/openai.py +0 -0
  165. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/session/__init__.py +0 -0
  166. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/session/conversation_factory.py +0 -0
  167. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/session/conversation_recovery.py +0 -0
  168. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/session/conversation_session.py +0 -0
  169. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/session/factory.py +0 -0
  170. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/session/protocol.py +0 -0
  171. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/task_runtime/__init__.py +0 -0
  172. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/task_runtime/core/__init__.py +0 -0
  173. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/task_runtime/core/ids.py +0 -0
  174. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/task_runtime/core/interfaces.py +0 -0
  175. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/task_runtime/core/notification_priority.py +0 -0
  176. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/task_runtime/core/types.py +0 -0
  177. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/task_runtime/integrations/__init__.py +0 -0
  178. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/task_runtime/integrations/loop_adapter.py +0 -0
  179. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/task_runtime/integrations/loop_integration.py +0 -0
  180. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/task_runtime/integrations/prefetch_providers.py +0 -0
  181. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/task_runtime/integrations/provider_factory.py +0 -0
  182. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/task_runtime/integrations/queued_command_provider.py +0 -0
  183. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/task_runtime/integrations/sqlite_queued_command_provider.py +0 -0
  184. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/task_runtime/integrations/tool_use_summary_provider.py +0 -0
  185. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/task_runtime/orchestrator/__init__.py +0 -0
  186. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/task_runtime/orchestrator/runtime.py +0 -0
  187. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/task_runtime/output/__init__.py +0 -0
  188. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/task_runtime/output/sink.py +0 -0
  189. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/task_runtime/policy/__init__.py +0 -0
  190. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/task_runtime/policy/withhold_visibility.py +0 -0
  191. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/task_runtime/queue/__init__.py +0 -0
  192. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/task_runtime/queue/in_memory.py +0 -0
  193. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/task_runtime/skill_prefetch/__init__.py +0 -0
  194. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/task_runtime/skill_prefetch/attachments.py +0 -0
  195. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/task_runtime/skill_prefetch/models.py +0 -0
  196. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/task_runtime/skill_prefetch/provider.py +0 -0
  197. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/task_runtime/store/__init__.py +0 -0
  198. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/task_runtime/store/in_memory.py +0 -0
  199. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/task_runtime/store/sqlite_store.py +0 -0
  200. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/task_runtime/tasklist/__init__.py +0 -0
  201. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/task_runtime/tasklist/high_water_mark.py +0 -0
  202. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/task_runtime/tasklist/lock.py +0 -0
  203. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/task_runtime/tasklist/models.py +0 -0
  204. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/task_runtime/tasklist/path_resolver.py +0 -0
  205. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/task_runtime/tasklist/store.py +0 -0
  206. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/task_runtime/tasks/__init__.py +0 -0
  207. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/task_runtime/tasks/ai_analysis/__init__.py +0 -0
  208. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/task_runtime/tasks/ai_analysis/base.py +0 -0
  209. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/task_runtime/tasks/ai_analysis/evaluation.py +0 -0
  210. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/task_runtime/tasks/ai_analysis/registry.py +0 -0
  211. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/task_runtime/tasks/ai_analysis/scheduler.py +0 -0
  212. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/task_runtime/tasks/base/__init__.py +0 -0
  213. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/task_runtime/tasks/base/contracts.py +0 -0
  214. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/task_runtime/tasks/custom/__init__.py +0 -0
  215. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/task_runtime/tasks/custom/executor.py +0 -0
  216. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/task_runtime/tasks/custom/notification.py +0 -0
  217. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/task_runtime/tasks/custom/semantics.py +0 -0
  218. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/task_runtime/tasks/custom/spec.py +0 -0
  219. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/task_runtime/tasks/dream_task/__init__.py +0 -0
  220. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/task_runtime/tasks/dream_task/executor.py +0 -0
  221. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/task_runtime/tasks/dream_task/notification.py +0 -0
  222. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/task_runtime/tasks/dream_task/semantics.py +0 -0
  223. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/task_runtime/tasks/dream_task/spec.py +0 -0
  224. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/task_runtime/tasks/dream_task/state.py +0 -0
  225. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/task_runtime/tasks/in_process_teammate/__init__.py +0 -0
  226. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/task_runtime/tasks/in_process_teammate/executor.py +0 -0
  227. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/task_runtime/tasks/in_process_teammate/notification.py +0 -0
  228. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/task_runtime/tasks/in_process_teammate/semantics.py +0 -0
  229. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/task_runtime/tasks/in_process_teammate/spec.py +0 -0
  230. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/task_runtime/tasks/local_agent/__init__.py +0 -0
  231. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/task_runtime/tasks/local_agent/executor.py +0 -0
  232. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/task_runtime/tasks/local_agent/notification.py +0 -0
  233. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/task_runtime/tasks/local_agent/runner.py +0 -0
  234. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/task_runtime/tasks/local_agent/semantics.py +0 -0
  235. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/task_runtime/tasks/local_agent/spec.py +0 -0
  236. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/task_runtime/tasks/local_bash/__init__.py +0 -0
  237. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/task_runtime/tasks/local_bash/executor.py +0 -0
  238. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/task_runtime/tasks/local_bash/notification.py +0 -0
  239. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/task_runtime/tasks/local_bash/semantics.py +0 -0
  240. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/task_runtime/tasks/local_bash/spec.py +0 -0
  241. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/task_runtime/tasks/remote_agent/__init__.py +0 -0
  242. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/task_runtime/tasks/remote_agent/backend.py +0 -0
  243. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/task_runtime/tasks/remote_agent/executor.py +0 -0
  244. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/task_runtime/tasks/remote_agent/notification.py +0 -0
  245. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/task_runtime/tasks/remote_agent/semantics.py +0 -0
  246. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/task_runtime/tasks/remote_agent/spec.py +0 -0
  247. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/task_runtime/tasks/trace_cleanup/__init__.py +0 -0
  248. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/task_runtime/tasks/trace_cleanup/bootstrap.py +0 -0
  249. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/task_runtime/tasks/trace_cleanup/executor.py +0 -0
  250. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/task_runtime/tasks/trace_cleanup/scheduler.py +0 -0
  251. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tool_runtime/__init__.py +0 -0
  252. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tool_runtime/adapter.py +0 -0
  253. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tool_runtime/base.py +0 -0
  254. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tool_runtime/errors.py +0 -0
  255. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tool_runtime/identical_call_cache.py +0 -0
  256. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tool_runtime/loader.py +0 -0
  257. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tool_runtime/models.py +0 -0
  258. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tool_runtime/permission_context.py +0 -0
  259. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tool_runtime/pipeline.py +0 -0
  260. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tool_runtime/policy.py +0 -0
  261. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tool_runtime/registry.py +0 -0
  262. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tool_runtime/resolvers/__init__.py +0 -0
  263. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tool_runtime/resolvers/agent_session.py +0 -0
  264. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tool_runtime/resolvers/background.py +0 -0
  265. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tool_runtime/resolvers/base.py +0 -0
  266. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tool_runtime/resolvers/conversation.py +0 -0
  267. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tool_runtime/resolvers/workflow.py +0 -0
  268. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tool_runtime/session_store.py +0 -0
  269. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tool_runtime/smoke_test_runtime.py +0 -0
  270. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tool_runtime/state_bridge.py +0 -0
  271. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/__init__.py +0 -0
  272. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/agent/__init__.py +0 -0
  273. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/agent/backend.py +0 -0
  274. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/agent/built_in/__init__.py +0 -0
  275. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/agent/built_in/agentx_guide.py +0 -0
  276. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/agent/built_in/explore.py +0 -0
  277. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/agent/built_in/general.py +0 -0
  278. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/agent/built_in/plan.py +0 -0
  279. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/agent/built_in/statusline_setup.py +0 -0
  280. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/agent/built_in/verification.py +0 -0
  281. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/agent/builtin_subagent_loader.py +0 -0
  282. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/agent/cwd_resolution.py +0 -0
  283. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/agent/limits.py +0 -0
  284. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/agent/loader.py +0 -0
  285. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/agent/models.py +0 -0
  286. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/agent/prompt.py +0 -0
  287. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/agent/registry/__init__.py +0 -0
  288. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/agent/registry/config.py +0 -0
  289. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/agent/registry/registry.py +0 -0
  290. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/agent/scope.py +0 -0
  291. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/agent/tool.py +0 -0
  292. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/ask_user_question/__init__.py +0 -0
  293. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/ask_user_question/constants.py +0 -0
  294. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/ask_user_question/html_preview.py +0 -0
  295. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/ask_user_question/models.py +0 -0
  296. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/ask_user_question/prompt.py +0 -0
  297. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/ask_user_question/tool.py +0 -0
  298. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/ask_user_question/validators.py +0 -0
  299. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/bash/__init__.py +0 -0
  300. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/bash/ast_security.py +0 -0
  301. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/bash/backend.py +0 -0
  302. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/bash/bash_hardening.py +0 -0
  303. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/bash/bash_runtime_contract.py +0 -0
  304. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/bash/cwd_reporter.py +0 -0
  305. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/bash/limits.py +0 -0
  306. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/bash/mode_validation.py +0 -0
  307. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/bash/models.py +0 -0
  308. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/bash/observability.py +0 -0
  309. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/bash/output_utils.py +0 -0
  310. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/bash/path_security.py +0 -0
  311. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/bash/prompt.py +0 -0
  312. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/bash/read_only_validation.py +0 -0
  313. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/bash/result_presenter.py +0 -0
  314. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/bash/sandbox_decision.py +0 -0
  315. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/bash/security.py +0 -0
  316. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/bash/sed_edit_parser.py +0 -0
  317. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/bash/sed_validation.py +0 -0
  318. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/bash/semantics.py +0 -0
  319. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/bash/session_manager.py +0 -0
  320. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/bash/session_runtime.py +0 -0
  321. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/bash/shell_locator.py +0 -0
  322. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/bash/task_runtime.py +0 -0
  323. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/bash/tool.py +0 -0
  324. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/bash/windows_shell_quoting.py +0 -0
  325. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/edit/__init__.py +0 -0
  326. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/edit/backend.py +0 -0
  327. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/edit/batch_tool.py +0 -0
  328. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/edit/diff_generator.py +0 -0
  329. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/edit/git_diff_generator.py +0 -0
  330. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/edit/limits.py +0 -0
  331. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/edit/models.py +0 -0
  332. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/edit/prompt.py +0 -0
  333. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/edit/quote_match.py +0 -0
  334. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/edit/quote_normalizer.py +0 -0
  335. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/edit/settings_validator.py +0 -0
  336. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/edit/staleness.py +0 -0
  337. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/edit/tool.py +0 -0
  338. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/edit/validator.py +0 -0
  339. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/glob/__init__.py +0 -0
  340. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/glob/models.py +0 -0
  341. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/glob/pagination.py +0 -0
  342. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/glob/prompt.py +0 -0
  343. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/glob/rg_list_backend.py +0 -0
  344. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/glob/rg_pattern.py +0 -0
  345. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/glob/tool.py +0 -0
  346. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/grep/__init__.py +0 -0
  347. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/grep/backend.py +0 -0
  348. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/grep/models.py +0 -0
  349. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/grep/prompt.py +0 -0
  350. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/grep/rg_subprocess_controller.py +0 -0
  351. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/grep/tool.py +0 -0
  352. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/read/__init__.py +0 -0
  353. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/read/backend.py +0 -0
  354. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/read/limits.py +0 -0
  355. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/read/models.py +0 -0
  356. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/read/prompt.py +0 -0
  357. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/read/tool.py +0 -0
  358. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/ripgrep_plugin_exclusions.py +0 -0
  359. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/skill/__init__.py +0 -0
  360. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/skill/argument_substitution.py +0 -0
  361. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/skill/loader.py +0 -0
  362. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/skill/models.py +0 -0
  363. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/skill/policy.py +0 -0
  364. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/skill/prompt.py +0 -0
  365. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/skill/tool.py +0 -0
  366. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/task_create/__init__.py +0 -0
  367. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/task_create/hooks.py +0 -0
  368. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/task_create/limits.py +0 -0
  369. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/task_create/models.py +0 -0
  370. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/task_create/prompt.py +0 -0
  371. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/task_create/tool.py +0 -0
  372. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/task_get/__init__.py +0 -0
  373. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/task_get/models.py +0 -0
  374. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/task_get/prompt.py +0 -0
  375. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/task_get/tool.py +0 -0
  376. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/task_list/__init__.py +0 -0
  377. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/task_list/models.py +0 -0
  378. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/task_list/prompt.py +0 -0
  379. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/task_list/tool.py +0 -0
  380. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/task_update/__init__.py +0 -0
  381. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/task_update/hooks.py +0 -0
  382. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/task_update/models.py +0 -0
  383. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/task_update/prompt.py +0 -0
  384. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/task_update/tool.py +0 -0
  385. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/user_message/__init__.py +0 -0
  386. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/user_message/attachments.py +0 -0
  387. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/user_message/models.py +0 -0
  388. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/user_message/prompt.py +0 -0
  389. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/user_message/runtime_config.py +0 -0
  390. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/user_message/tool.py +0 -0
  391. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/webfetch/__init__.py +0 -0
  392. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/webfetch/backend.py +0 -0
  393. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/webfetch/limits.py +0 -0
  394. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/webfetch/loader.py +0 -0
  395. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/webfetch/models.py +0 -0
  396. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/webfetch/preapproved.py +0 -0
  397. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/webfetch/prompt.py +0 -0
  398. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/webfetch/summary.py +0 -0
  399. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/webfetch/tool.py +0 -0
  400. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/websearch/__init__.py +0 -0
  401. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/websearch/backend.py +0 -0
  402. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/websearch/events.py +0 -0
  403. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/websearch/limits.py +0 -0
  404. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/websearch/loader.py +0 -0
  405. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/websearch/models.py +0 -0
  406. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/websearch/prompt.py +0 -0
  407. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/websearch/tool.py +0 -0
  408. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/write/__init__.py +0 -0
  409. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/write/backend.py +0 -0
  410. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/write/limits.py +0 -0
  411. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/write/models.py +0 -0
  412. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/write/prompt.py +0 -0
  413. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/write/tool.py +0 -0
  414. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/tools/write/validator.py +0 -0
  415. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/utils/__init__.py +0 -0
  416. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/utils/cwd.py +0 -0
  417. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/utils/host_platform.py +0 -0
  418. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/utils/path_hierarchy.py +0 -0
  419. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/utils/path_user_input.py +0 -0
  420. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/utils/rg_executable.py +0 -0
  421. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/utils/subprocess_text.py +0 -0
  422. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/utils/temp_paths.py +0 -0
  423. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/utils/unc_path.py +0 -0
  424. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/utils/win_reserved_paths.py +0 -0
  425. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/workflow/__init__.py +0 -0
  426. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/workflow/base.py +0 -0
  427. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/workflow/batch.py +0 -0
  428. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/workflow/dag.py +0 -0
  429. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/workflow/event_adapter/__init__.py +0 -0
  430. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/workflow/event_adapter/adapter.py +0 -0
  431. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/workflow/event_adapter/depth_resolver.py +0 -0
  432. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/workflow/event_adapter/handlers/__init__.py +0 -0
  433. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/workflow/event_adapter/handlers/parallel_handler.py +0 -0
  434. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/workflow/event_adapter/handlers/route_handler.py +0 -0
  435. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/workflow/event_adapter/handlers/stage_handler.py +0 -0
  436. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/workflow/event_adapter/stack.py +0 -0
  437. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/workflow/event_adapter/types.py +0 -0
  438. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/workflow/node.py +0 -0
  439. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/workflow/patterns/__init__.py +0 -0
  440. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/workflow/patterns/chaining.py +0 -0
  441. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/workflow/patterns/evaluator_optimizer.py +0 -0
  442. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/workflow/patterns/orchestrator.py +0 -0
  443. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/workflow/patterns/parallelization.py +0 -0
  444. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/workflow/patterns/routing.py +0 -0
  445. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/workflow/state.py +0 -0
  446. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/workspace/__init__.py +0 -0
  447. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/workspace/capabilities.py +0 -0
  448. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/workspace/config.py +0 -0
  449. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/workspace/path_key_normalizer.py +0 -0
  450. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/workspace/resolver.py +0 -0
  451. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx/workspace/validators.py +0 -0
  452. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx_python.egg-info/SOURCES.txt +0 -0
  453. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx_python.egg-info/dependency_links.txt +0 -0
  454. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx_python.egg-info/not-zip-safe +0 -0
  455. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx_python.egg-info/requires.txt +0 -0
  456. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/langchain_agentx_python.egg-info/top_level.txt +0 -0
  457. {langchain-agentx-python-0.3.2 → langchain-agentx-python-0.3.4}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: langchain-agentx-python
3
- Version: 0.3.2
3
+ Version: 0.3.4
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
@@ -20,6 +20,8 @@ from .stages import (
20
20
  ToolResultBudgetStage,
21
21
  )
22
22
  from .types import (
23
+ CompactProgress,
24
+ CompactProgressCallback,
23
25
  CompactionConfig,
24
26
  ContextCompactionContext,
25
27
  StageResult,
@@ -40,6 +42,8 @@ __all__ = [
40
42
  "active_compaction_settings",
41
43
  "AutocompactLlmPromptKind",
42
44
  "AutocompactStage",
45
+ "CompactProgress",
46
+ "CompactProgressCallback",
43
47
  "CompactionBlockingGuard",
44
48
  "CompactionConfig",
45
49
  "CompactionSettings",
@@ -11,6 +11,7 @@
11
11
 
12
12
  注意:
13
13
  - 不修改 `should_end` / `finish_reason` 等 exit 字段;只产出 `messages` 增量补丁。
14
+ - `arun` 方法为 async 版本,支持进度回调(供 /compact 命令使用)。
14
15
  """
15
16
 
16
17
  from __future__ import annotations
@@ -19,7 +20,7 @@ from typing import Any, Dict, Mapping
19
20
 
20
21
  from .pipeline import ContextPipeline
21
22
  from .settings import CompactionSettings
22
- from .types import ContextCompactionContext
23
+ from .types import CompactProgressCallback, ContextCompactionContext
23
24
 
24
25
 
25
26
  class LoopContextCompaction:
@@ -42,6 +43,26 @@ class LoopContextCompaction:
42
43
  ctx = ContextCompactionContext.from_state(state, model)
43
44
  return self._pipeline.run(state, ctx)
44
45
 
46
+ async def arun(
47
+ self,
48
+ state: Mapping[str, Any],
49
+ model: Any | None = None,
50
+ progress_callback: CompactProgressCallback = None,
51
+ ) -> Dict[str, Any]:
52
+ """Async 版本(供 /compact 命令使用),支持进度回调。
53
+
54
+ 参数:
55
+ state: LangGraph state
56
+ model: 可选的 LLM model(供 autocompact 使用)
57
+ progress_callback: 进度回调函数,接收 CompactProgress 对象
58
+
59
+ 返回:
60
+ 与 run() 相同的补丁格式
61
+ """
62
+ ctx = ContextCompactionContext.from_state(state, model)
63
+ ctx.progress_callback = progress_callback
64
+ return await self._pipeline.arun(state, ctx)
65
+
45
66
 
46
67
  _default_loop_context_compaction: LoopContextCompaction | None = None
47
68
 
@@ -30,7 +30,7 @@ from .stages import (
30
30
  ToolResultBudgetStage,
31
31
  )
32
32
  from .stages.base import CompactionStage
33
- from .types import ContextCompactionContext
33
+ from .types import CompactProgress, ContextCompactionContext
34
34
 
35
35
 
36
36
  class DefaultCompactionStages:
@@ -120,6 +120,86 @@ class ContextPipeline:
120
120
  return {}
121
121
  return patch
122
122
 
123
+ async def arun(
124
+ self,
125
+ state: dict[str, Any],
126
+ ctx: ContextCompactionContext,
127
+ ) -> dict[str, Any]:
128
+ """Async 版本:每个 stage 完成后 emit 进度(供 /compact 进度条使用)。
129
+
130
+ 与 run() 的区别:
131
+ - 走 async 路径,支持 AutocompactStage 的流式 LLM 调用。
132
+ - 通过 ctx.progress_callback 回调进度更新。
133
+ """
134
+ messages = state.get("messages")
135
+ if not isinstance(messages, list) or not messages:
136
+ return {}
137
+
138
+ s = self._settings_override or get_active_compaction_settings()
139
+ estimator = TokenEstimator(num_chars_per_token=s.num_chars_per_token)
140
+ original_input = list(messages)
141
+ current = original_input
142
+ guard = CompactionBlockingGuard(settings=s)
143
+ tw = guard.calculate_token_warning_state(original_input)
144
+ tokens_before = estimator.estimate_messages_tokens(original_input)
145
+ stages_meta: list[dict[str, Any]] = []
146
+ total_freed = 0
147
+ n = len(self._stages)
148
+
149
+ for i, stage in enumerate(self._stages):
150
+ if ctx.progress_callback:
151
+ ctx.progress_callback(
152
+ CompactProgress(
153
+ stage=stage.name,
154
+ stage_index=i,
155
+ total_stages=n,
156
+ percent=int(i / n * 100),
157
+ )
158
+ )
159
+ # autocompact 走 async(内部 streaming),其余走 sync
160
+ sr = await stage.arun(current, ctx)
161
+ total_freed += sr.tokens_freed
162
+ stages_meta.append(
163
+ {
164
+ "name": stage.name,
165
+ "tokens_freed": sr.tokens_freed,
166
+ "extra": dict(sr.extra),
167
+ }
168
+ )
169
+ current = sr.messages
170
+ ctx.snip_tokens_freed_carry += sr.tokens_freed
171
+
172
+ if ctx.progress_callback:
173
+ ctx.progress_callback(
174
+ CompactProgress(
175
+ stage="done",
176
+ stage_index=n,
177
+ total_stages=n,
178
+ percent=100,
179
+ )
180
+ )
181
+
182
+ patch: dict[str, Any] = {}
183
+ if current is not original_input:
184
+ patch["messages"] = current
185
+
186
+ tokens_after = estimator.estimate_messages_tokens(current)
187
+ if s.emit_compaction_pipeline_meta and (
188
+ "messages" in patch or total_freed > 0
189
+ ):
190
+ patch["compaction_pipeline_meta"] = {
191
+ "estimated_tokens_before": tokens_before,
192
+ "estimated_tokens_after": tokens_after,
193
+ "tokens_freed_sum": total_freed,
194
+ "snip_tokens_freed_carry_final": ctx.snip_tokens_freed_carry,
195
+ "token_warning_level": tw.level,
196
+ "stages": stages_meta,
197
+ }
198
+
199
+ if not patch:
200
+ return {}
201
+ return patch
202
+
123
203
 
124
204
  __all__ = [
125
205
  "ContextPipeline",
@@ -13,6 +13,7 @@ Autocompact 阶段:超阈值时折叠前缀消息(对齐 CC `deps.autocompac
13
13
 
14
14
  注意:
15
15
  - `query_source in autocompact_skip_query_sources`(如 `compact`)时跳过,防递归压缩。
16
+ - `arun()` 方法为 async 版本,支持流式 LLM 调用与进度回调。
16
17
  """
17
18
 
18
19
  from __future__ import annotations
@@ -25,7 +26,7 @@ from ..blocking_guard import CompactionBlockingGuard
25
26
  from ..message_utils import stringify_content, total_estimated_tokens_for_messages
26
27
  from ...prompt.compact import build_autocompact_llm_instruction_prompt, get_compact_user_summary_message
27
28
  from ..settings import CompactionSettings, get_active_compaction_settings
28
- from ..types import ContextCompactionContext, StageResult
29
+ from ..types import CompactProgress, ContextCompactionContext, StageResult
29
30
  from .base import CompactionStage
30
31
 
31
32
 
@@ -105,6 +106,70 @@ class AutocompactStage(CompactionStage):
105
106
  extra={"autocompact_mode": mode, "folded_messages": len(head)},
106
107
  )
107
108
 
109
+ async def arun(self, messages: list[Any], ctx: ContextCompactionContext) -> StageResult:
110
+ """Async 版本:LLM 摘要使用 astream 流式生成,支持进度回调。"""
111
+ s = self._effective_settings()
112
+ if ctx.query_source in s.autocompact_skip_query_sources:
113
+ return StageResult(messages=messages, tokens_freed=0, extra={"autocompact_skipped": "query_source"})
114
+
115
+ total = total_estimated_tokens_for_messages(messages, s.num_chars_per_token)
116
+ threshold = int(s.default_max_context_tokens * s.default_compress_trigger_fraction)
117
+ slack = ctx.snip_tokens_freed_carry if s.autocompact_snip_carry_threshold_slack else 0
118
+ if total <= threshold + slack:
119
+ return StageResult(messages=messages, tokens_freed=0)
120
+
121
+ # 跳过所有 SystemMessages(不保留),对齐 SystemMessage 单一来源原则
122
+ idx = 0
123
+ while idx < len(messages) and isinstance(messages[idx], SystemMessage):
124
+ idx += 1
125
+ rest = messages[idx:]
126
+ k = max(1, s.default_compress_keep_recent_messages)
127
+ if len(rest) <= k:
128
+ return StageResult(messages=messages, tokens_freed=0)
129
+
130
+ head = rest[:-k]
131
+ tail = rest[-k:]
132
+
133
+ block_llm = CompactionBlockingGuard(settings=s).should_block_compact_llm(messages)
134
+ if (
135
+ s.autocompact_use_llm_when_available
136
+ and ctx.model is not None
137
+ and not block_llm
138
+ ):
139
+ summary = await _astream_summary(ctx.model, s, head, ctx.progress_callback)
140
+ if summary:
141
+ folded = [
142
+ HumanMessage(
143
+ content=get_compact_user_summary_message(
144
+ summary,
145
+ recent_messages_preserved=True,
146
+ )
147
+ )
148
+ ] + tail
149
+ new_total = total_estimated_tokens_for_messages(folded, s.num_chars_per_token)
150
+ return StageResult(
151
+ messages=folded,
152
+ tokens_freed=max(0, total - new_total),
153
+ extra={"autocompact_mode": "llm", "folded_messages": len(head)},
154
+ )
155
+
156
+ # fallback: prune
157
+ folded = [
158
+ HumanMessage(
159
+ content=(
160
+ f"[Context autocompacted: {len(head)} earlier messages omitted; "
161
+ "details dropped for token budget.]"
162
+ )
163
+ )
164
+ ] + tail
165
+ new_total = total_estimated_tokens_for_messages(folded, s.num_chars_per_token)
166
+ mode = "prune_blocked_llm" if block_llm else "prune"
167
+ return StageResult(
168
+ messages=folded,
169
+ tokens_freed=max(0, total - new_total),
170
+ extra={"autocompact_mode": mode, "folded_messages": len(head)},
171
+ )
172
+
108
173
 
109
174
  def _resolve_autocompact_llm_instruction(s: CompactionSettings) -> str:
110
175
  if s.autocompact_llm_instructions_override is not None:
@@ -139,3 +204,50 @@ def _invoke_summary(model: Any, s: CompactionSettings, head: list[Any]) -> str |
139
204
  return None
140
205
  text = stringify_content(getattr(resp, "content", None))
141
206
  return text if text else None
207
+
208
+
209
+ async def _astream_summary(
210
+ model: Any, s: CompactionSettings, head: list[Any], progress_callback: Any = None
211
+ ) -> str | None:
212
+ """流式生成摘要,每个 chunk 触发 progress callback。
213
+
214
+ 进度计算:
215
+ - autocompact 占 80%-100%,用 chunk 数做粗略进度。
216
+ - 每收到约 10 个 chunk 增加 2%,上限 99%。
217
+ """
218
+ cap = max(256, s.autocompact_llm_excerpt_chars_per_message)
219
+ parts: list[str] = []
220
+ for m in head:
221
+ label = getattr(m, "type", type(m).__name__)
222
+ chunk = stringify_content(getattr(m, "content", None))[:cap]
223
+ parts.append(f"{label}: {chunk}")
224
+ body = "\n\n---\n\n".join(parts)
225
+ excerpt_msg = HumanMessage(
226
+ content="[Conversation excerpt to summarize]\n\n" + body
227
+ )
228
+ instruction = _resolve_autocompact_llm_instruction(s)
229
+ instruction_msg = HumanMessage(content=instruction)
230
+
231
+ try:
232
+ chunks: list[str] = []
233
+ async for chunk in model.astream([excerpt_msg, instruction_msg]):
234
+ token = stringify_content(getattr(chunk, "content", None))
235
+ if token:
236
+ chunks.append(token)
237
+ if progress_callback:
238
+ # autocompact 占 80%-100%,用 chunk 数做粗略进度
239
+ pct = min(80 + len(chunks) * 2 // 10, 99)
240
+ from ..types import CompactProgress
241
+
242
+ progress_callback(
243
+ CompactProgress(
244
+ stage="autocompact",
245
+ stage_index=4,
246
+ total_stages=5,
247
+ percent=pct,
248
+ detail="generating summary...",
249
+ )
250
+ )
251
+ return "".join(chunks) or None
252
+ except Exception:
253
+ return None
@@ -30,3 +30,12 @@ class CompactionStage(ABC):
30
30
  @abstractmethod
31
31
  def run(self, messages: list[Any], ctx: ContextCompactionContext) -> StageResult:
32
32
  """输入当前消息列表,返回更新后的列表与可选 tokens_freed。"""
33
+
34
+ async def arun(self, messages: list[Any], ctx: ContextCompactionContext) -> StageResult:
35
+ """Async 版本,默认委托 sync run()。AutocompactStage 覆盖此方法。
36
+
37
+ 子类覆盖说明:
38
+ - 仅 AutocompactStage 需要覆盖以支持流式 LLM 调用。
39
+ - 其他阶段继承此默认实现即可。
40
+ """
41
+ return self.run(messages, ctx)
@@ -11,10 +11,12 @@
11
11
 
12
12
  注意:
13
13
  - `TokenWarningState` 供 `blocking_guard` 与 `compaction_pipeline_meta` 观测对齐 CC token 告警语义。
14
+ - `CompactProgress` 用于 /compact 进度条回调,CLI 通过 progress_callback 接收进度更新。
14
15
  """
15
16
 
16
17
  from __future__ import annotations
17
18
 
19
+ from collections.abc import Callable
18
20
  from dataclasses import dataclass, field
19
21
  from typing import Any, Literal, Mapping
20
22
 
@@ -37,6 +39,7 @@ class ContextCompactionContext:
37
39
  snip_tokens_freed_carry: int = 0
38
40
  query_source: str | None = None
39
41
  config: CompactionConfig = field(default_factory=CompactionConfig)
42
+ progress_callback: CompactProgressCallback = None
40
43
 
41
44
  @classmethod
42
45
  def from_state(
@@ -70,8 +73,32 @@ class TokenWarningState:
70
73
  level: TokenWarningLevel
71
74
 
72
75
 
76
+ @dataclass(frozen=True)
77
+ class CompactProgress:
78
+ """压缩进度通知(供 CLI 进度条消费)。
79
+
80
+ 属性:
81
+ stage: 当前阶段名(tool_result_budget / snip / microcompact / collapse / autocompact / done)
82
+ stage_index: 0-based 阶段序号
83
+ total_stages: 总阶段数(默认 5)
84
+ percent: 0-100 整体进度百分比
85
+ detail: 可选描述(如 "generating summary...")
86
+ """
87
+
88
+ stage: str
89
+ stage_index: int
90
+ total_stages: int
91
+ percent: int
92
+ detail: str | None = None
93
+
94
+
95
+ CompactProgressCallback = Callable[[CompactProgress], None] | None
96
+
97
+
73
98
  __all__ = [
74
99
  "CompactionConfig",
100
+ "CompactProgress",
101
+ "CompactProgressCallback",
75
102
  "ContextCompactionContext",
76
103
  "StageResult",
77
104
  "TokenWarningLevel",
@@ -35,7 +35,7 @@ from typing import (
35
35
  )
36
36
 
37
37
  from langchain_core.language_models.chat_models import BaseChatModel
38
- from langchain_core.messages import SystemMessage
38
+ from langchain_core.messages import HumanMessage, SystemMessage
39
39
  from langchain_core.runnables import RunnableConfig
40
40
  from langgraph._internal._runnable import RunnableCallable
41
41
  from langgraph.constants import END, START
@@ -92,11 +92,8 @@ from ...memory.memdir.agent_memory import (
92
92
  )
93
93
  from ...memory.memdir.runtime import MemoryPromptBootstrap
94
94
  from ...memory.memdir.extractor import MemoryExtractionCoordinator
95
- from ...memory.session import (
96
- SessionMemoryCompactBridge,
97
- SessionMemoryManager,
98
- make_session_memory_section,
99
- )
95
+ # Session memory imports use lazy imports to avoid circular dependency
96
+ # SessionMemoryCompactBridge uses lazy import to avoid circular dependency with memory.session.session_memory
100
97
  from ..prompt import SystemPromptSection, build_effective_system_prompt
101
98
  from ..prompt.session_context import get_default_session_context_sections
102
99
  from ...tools.agent.prompt import build_explore_plan_guidance
@@ -263,9 +260,10 @@ class LoopGraphBuilder:
263
260
  )
264
261
  self._model_profile_registry = self._raw_capabilities.model_profile_registry
265
262
  self._model_context_resolver = ModelContextResolver()
266
- self._session_memory_manager: SessionMemoryManager | None = None
267
- self._session_memory_compact_bridge: SessionMemoryCompactBridge | None = None
263
+ # Lazy imports to avoid circular dependency with memory.session
268
264
  if self._raw_enable_session_memory:
265
+ from ...memory.session import SessionMemoryManager, make_session_memory_section
266
+ from ...memory.session.compact_bridge import SessionMemoryCompactBridge
269
267
  session_memory_path = self._workspace_cfg.session_memory_path(session_id)
270
268
  self._session_memory_manager = SessionMemoryManager(
271
269
  session_memory_path=session_memory_path,
@@ -277,6 +275,9 @@ class LoopGraphBuilder:
277
275
  extraction_state=self._session_memory_manager.extraction_state,
278
276
  )
279
277
  self._dynamic_sections.append(make_session_memory_section(session_memory_path))
278
+ else:
279
+ self._session_memory_manager = None
280
+ self._session_memory_compact_bridge = None
280
281
  if self._raw_include_default_session_context:
281
282
  self._dynamic_sections.extend(
282
283
  get_default_session_context_sections(
@@ -1113,7 +1114,10 @@ class LoopGraphBuilder:
1113
1114
  hint = skill_prefetch_provider._build_listing_hint(scope=skill_init_scope)
1114
1115
  if hint is None:
1115
1116
  return {}
1116
- return {"messages": [SystemMessage(content=f"[skill_listing] {hint.summary}")]}
1117
+ # 对齐 CC:skill_listing 是 UserMessage,不是 SystemMessage
1118
+ # CC src/utils/messages.ts: createUserMessage({ isMeta: true, ... })
1119
+ # CC 中包裹在 <system-reminder> 中,但 role 是 "user"
1120
+ return {"messages": [HumanMessage(content=f"[skill_listing] {hint.summary}")]}
1117
1121
 
1118
1122
  graph_inner.add_node(
1119
1123
  "skill_init",
@@ -22,7 +22,7 @@ import os
22
22
  from typing import Any, Dict, List
23
23
 
24
24
  from langchain.agents.structured_output import ResponseFormat
25
- from langchain_core.messages import AIMessage, SystemMessage
25
+ from langchain_core.messages import AIMessage, HumanMessage, SystemMessage
26
26
  from langchain_core.runnables import Runnable
27
27
  from langchain_core.runnables.config import RunnableConfig
28
28
  from langgraph.types import Command
@@ -97,6 +97,9 @@ def _messages_for_model_invoke(req: Any) -> list[Any]:
97
97
 
98
98
  对齐 CC normalizeMessagesForAPI:剥离 state["messages"] 中的违规 SystemMessage,
99
99
  确保 OpenAI 兼容 API "System message must be at the beginning" 约束。
100
+
101
+ L2 兜底:确保至少一条 HumanMessage 存在(对齐 CC prependUserContext 的防御层),
102
+ 防止 compaction 路径遗漏导致 provider 400 "No user query found"。
100
103
  """
101
104
  messages = list(req.messages or [])
102
105
  s = get_active_compaction_settings()
@@ -138,6 +141,18 @@ def _messages_for_model_invoke(req: Any) -> list[Any]:
138
141
 
139
142
  messages = filtered
140
143
 
144
+ # L2 兜底:确保至少一条 HumanMessage 存在(防止 compaction 路径遗漏)
145
+ has_human = any(isinstance(m, HumanMessage) for m in messages)
146
+ if not has_human:
147
+ logger.warning(
148
+ "No HumanMessage found in messages after sanitization; "
149
+ "injecting placeholder to avoid provider 400 error."
150
+ )
151
+ messages = [
152
+ HumanMessage(content="[No user message available after context compaction.]"),
153
+ *messages,
154
+ ]
155
+
141
156
  if req.system_message:
142
157
  return [req.system_message, *messages]
143
158
  return messages
@@ -19,7 +19,7 @@ from pathlib import Path
19
19
  import time
20
20
  from typing import Any
21
21
 
22
- from langchain_core.messages import AIMessage, BaseMessage, SystemMessage, ToolMessage
22
+ from langchain_core.messages import AIMessage, BaseMessage, HumanMessage, SystemMessage, ToolMessage
23
23
 
24
24
  from langchain_agentx.memory.session.prompts import (
25
25
  DEFAULT_SESSION_MEMORY_TEMPLATE,
@@ -124,8 +124,15 @@ def adjust_index_to_preserve_api_invariants(
124
124
  return 0
125
125
 
126
126
 
127
- def _build_summary_message(session_memory_summary: str) -> SystemMessage:
128
- return SystemMessage(
127
+ def _build_summary_message(session_memory_summary: str) -> HumanMessage:
128
+ """Return HumanMessage summary for compaction (not SystemMessage).
129
+
130
+ 对齐原则 #10「SystemPrompt 单一来源」与 CC summaryMessages: UserMessage[]:
131
+ - 压缩输出禁止包含 SystemMessage
132
+ - 压缩后第一条必须是 HumanMessage(summary)
133
+ - 确保 L1 sanitizer 剥离后仍有 user 消息存在
134
+ """
135
+ return HumanMessage(
129
136
  content=(
130
137
  f"{SUMMARY_PREFIX}\n\n"
131
138
  f"<session_memory_summary>\n{session_memory_summary}\n</session_memory_summary>\n"
@@ -158,17 +165,20 @@ def try_session_memory_compaction(
158
165
  if cut_index == 0:
159
166
  return None
160
167
 
161
- head_system: list[BaseMessage] = []
162
- remaining: list[BaseMessage] = messages
163
- if isinstance(messages[0], SystemMessage):
164
- head_system = [messages[0]]
165
- remaining = messages[1:]
166
- cut_index = max(0, cut_index - 1)
168
+ # 跳过所有 leading SystemMessages(对齐原则 #10 与 autocompact.py:56-60)
169
+ idx = 0
170
+ while idx < len(messages) and isinstance(messages[idx], SystemMessage):
171
+ idx += 1
172
+ remaining = messages[idx:]
173
+ if idx > 0:
174
+ cut_index = max(0, cut_index - idx)
175
+
167
176
  tail = remaining[cut_index:]
168
177
  if not tail:
169
178
  return None
170
179
 
171
- rebuilt = [*head_system, _build_summary_message(truncated_summary), *tail]
180
+ # 重建: [HumanMessage(summary), ...tail] — 不含 SystemMessage
181
+ rebuilt = [_build_summary_message(truncated_summary), *tail]
172
182
  return rebuilt
173
183
 
174
184
 
@@ -202,9 +202,25 @@ class AgentSession:
202
202
  def clear_context(self) -> None:
203
203
  self._messages.clear()
204
204
 
205
- async def compact_context(self) -> tuple[int, int]:
205
+ async def compact_context(
206
+ self, *, progress_callback: Any = None
207
+ ) -> tuple[int, int]:
208
+ """压缩会话上下文,可选传入进度回调。
209
+
210
+ 参数:
211
+ progress_callback: 可选的进度回调函数,接收 CompactProgress 对象
212
+
213
+ 返回:
214
+ (before_tokens, after_tokens) 元组
215
+ """
206
216
  before_tokens = total_estimated_tokens_for_messages(self._messages, num_chars_per_token=4)
207
- patch = default_loop_context_compaction().run({"messages": self._messages})
217
+ # 注意:model=None 表示不使用 LLM 摘要,仅走 prune 路径
218
+ # 如果需要 LLM 摘要,调用方需要通过其他方式提供 model
219
+ patch = await default_loop_context_compaction().arun(
220
+ {"messages": self._messages},
221
+ model=None,
222
+ progress_callback=progress_callback,
223
+ )
208
224
  if isinstance(patch.get("messages"), list):
209
225
  self._messages = list(patch["messages"])
210
226
  after_tokens = total_estimated_tokens_for_messages(self._messages, num_chars_per_token=4)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: langchain-agentx-python
3
- Version: 0.3.2
3
+ Version: 0.3.4
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.3.2"
7
+ version = "0.3.4"
8
8
  description = "LangChain/LangGraph-based agent utilities for CodeBaseX."
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.11"