langchain-agentx-python 2.1.6__tar.gz → 2.1.8__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 (771) hide show
  1. {langchain-agentx-python-2.1.6/langchain_agentx_python.egg-info → langchain-agentx-python-2.1.8}/PKG-INFO +1 -1
  2. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/__init__.py +1 -1
  3. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/config/loop_config.py +5 -0
  4. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/config/loop_runtime_overlay.py +6 -1
  5. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/exit/reason_codes.py +4 -0
  6. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/graph/factory.py +22 -2
  7. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/run_context.py +3 -0
  8. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/runtime/context_factory.py +1 -0
  9. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/subagent/async_runner.py +77 -15
  10. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/subagent/context.py +3 -0
  11. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/subagent/graph.py +1 -0
  12. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/observability/__init__.py +16 -0
  13. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/observability/events/__init__.py +18 -0
  14. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/observability/events/agent_event_projector.py +18 -0
  15. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/observability/events/finish_event_payload_composer.py +43 -1
  16. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/observability/events/finish_outcome.py +49 -5
  17. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/observability/events/langchain_agentx_event_adapter.py +9 -1
  18. langchain-agentx-python-2.1.8/langchain_agentx/observability/events/oob_event_sink.py +183 -0
  19. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/observability/events/workflow_aware_event_adapter.py +9 -0
  20. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/observability/trace/__init__.py +8 -0
  21. langchain-agentx-python-2.1.8/langchain_agentx/observability/trace/persist_policy.py +40 -0
  22. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/session/agent_session.py +26 -0
  23. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/session/conversation_session.py +12 -0
  24. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/session/factory.py +1 -0
  25. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/workflow/base.py +20 -2
  26. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/workspace/capabilities.py +18 -2
  27. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8/langchain_agentx_python.egg-info}/PKG-INFO +1 -1
  28. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx_python.egg-info/SOURCES.txt +2 -0
  29. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/pyproject.toml +1 -1
  30. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/LICENSE +0 -0
  31. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/README.md +0 -0
  32. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/command/__init__.py +0 -0
  33. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/command/allowed_tools.py +0 -0
  34. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/command/builtin/__init__.py +0 -0
  35. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/command/builtin/clear.py +0 -0
  36. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/command/builtin/commit.py +0 -0
  37. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/command/builtin/commit_push_pr.py +0 -0
  38. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/command/builtin/compact.py +0 -0
  39. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/command/builtin/git_prompt_common.py +0 -0
  40. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/command/builtin/memory.py +0 -0
  41. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/command/builtin/reload_plugins.py +0 -0
  42. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/command/context.py +0 -0
  43. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/command/dispatcher.py +0 -0
  44. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/command/fork_executor.py +0 -0
  45. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/command/git_settings.py +0 -0
  46. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/command/prompt_shell.py +0 -0
  47. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/command/registry.py +0 -0
  48. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/command/result.py +0 -0
  49. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/command/types.py +0 -0
  50. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/config/__init__.py +0 -0
  51. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/config/model_profiles.yaml +0 -0
  52. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/config/model_profiles.yaml.example +0 -0
  53. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/health/__init__.py +0 -0
  54. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/health/checks.py +0 -0
  55. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/health/models.py +0 -0
  56. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/health/preflight.py +0 -0
  57. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/__init__.py +0 -0
  58. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/benchmark_frozen_config.py +0 -0
  59. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/config/__init__.py +0 -0
  60. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/config/agent_config.py +0 -0
  61. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/config/interaction_profile.py +0 -0
  62. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/config/model_context_resolver.py +0 -0
  63. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/config/model_retry_config.py +0 -0
  64. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/config/runtime_settings.py +0 -0
  65. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/config/thinking_config.py +0 -0
  66. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/config/token_estimator.py +0 -0
  67. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/config/tool_execution_engine_resolver.py +0 -0
  68. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/config/ui_display_context.py +0 -0
  69. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/context/__init__.py +0 -0
  70. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/context/blocking_guard.py +0 -0
  71. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/context/compaction_service.py +0 -0
  72. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/context/message_utils.py +0 -0
  73. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/context/pipeline.py +0 -0
  74. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/context/query_source.py +0 -0
  75. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/context/recovery_mode.py +0 -0
  76. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/context/settings.py +0 -0
  77. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/context/stages/__init__.py +0 -0
  78. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/context/stages/autocompact.py +0 -0
  79. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/context/stages/base.py +0 -0
  80. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/context/stages/collapse.py +0 -0
  81. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/context/stages/microcompact.py +0 -0
  82. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/context/stages/noop.py +0 -0
  83. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/context/stages/snip.py +0 -0
  84. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/context/stages/tool_result_budget.py +0 -0
  85. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/context/types.py +0 -0
  86. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/exit/__init__.py +0 -0
  87. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/exit/api_error_detection.py +0 -0
  88. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/exit/exit_logic.py +0 -0
  89. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/exit/query_source.py +0 -0
  90. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/exit/resolution.py +0 -0
  91. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/exit/terminal.py +0 -0
  92. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/exit/withheld_error.py +0 -0
  93. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/graph/__init__.py +0 -0
  94. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/graph/builtin_loop_control.py +0 -0
  95. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/graph/graph_edges.py +0 -0
  96. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/graph/reactive_compact_node.py +0 -0
  97. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/graph/runtime_tools_node.py +0 -0
  98. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/hook/__init__.py +0 -0
  99. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/hook/async_hook_runner.py +0 -0
  100. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/hook/config.py +0 -0
  101. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/hook/engine.py +0 -0
  102. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/hook/executors/__init__.py +0 -0
  103. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/hook/executors/agent.py +0 -0
  104. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/hook/executors/command.py +0 -0
  105. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/hook/executors/http.py +0 -0
  106. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/hook/executors/prompt.py +0 -0
  107. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/hook/graph_wiring.py +0 -0
  108. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/hook/hook_projection.py +0 -0
  109. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/hook/progress_payload.py +0 -0
  110. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/hook/registry.py +0 -0
  111. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/hook/trust.py +0 -0
  112. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/hook/types.py +0 -0
  113. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/injection/__init__.py +0 -0
  114. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/injection/dedup.py +0 -0
  115. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/loop_abort.py +0 -0
  116. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/message_contract.py +0 -0
  117. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/messages/__init__.py +0 -0
  118. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/messages/contract.py +0 -0
  119. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/messages/engine_protocol.py +0 -0
  120. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/messages/langgraph_adapter.py +0 -0
  121. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/messages/normalizer.py +0 -0
  122. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/messages/transcript_codec.py +0 -0
  123. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/messages/types.py +0 -0
  124. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/messages/validate.py +0 -0
  125. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/model/__init__.py +0 -0
  126. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/model/model_node.py +0 -0
  127. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/model/model_nodes.py +0 -0
  128. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/model/orphan_tool_results.py +0 -0
  129. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/model/retrier.py +0 -0
  130. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/model/retry_bridge.py +0 -0
  131. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/model/retry_classifier.py +0 -0
  132. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/model/retry_events.py +0 -0
  133. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/model/retry_exceptions.py +0 -0
  134. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/model/retry_policy.py +0 -0
  135. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/model/retry_progress.py +0 -0
  136. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/model/schema_and_format.py +0 -0
  137. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/model/streaming_fallback.py +0 -0
  138. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/model/tool_and_model_binding.py +0 -0
  139. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/model/tool_call_degradation_corrector.py +0 -0
  140. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/model/tool_transcript_guard.py +0 -0
  141. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/permissions/__init__.py +0 -0
  142. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/permissions/auto_mode_hook_sync.py +0 -0
  143. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/permissions/policy_roots_sync.py +0 -0
  144. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/prompt/__init__.py +0 -0
  145. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/prompt/builder.py +0 -0
  146. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/prompt/builtin.py +0 -0
  147. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/prompt/compact.py +0 -0
  148. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/prompt/sections.py +0 -0
  149. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/prompt/session_context.py +0 -0
  150. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/prompt/session_guidance.py +0 -0
  151. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/prompt/static_system_prompt.py +0 -0
  152. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/prompt/tool_aware_sections.py +0 -0
  153. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/prompt/using_your_tools.py +0 -0
  154. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/runtime/__init__.py +0 -0
  155. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/runtime/context.py +0 -0
  156. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/runtime/subagent_execution_paths.py +0 -0
  157. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/stream/graph_driver.py +0 -0
  158. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/stream/helpers.py +0 -0
  159. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/stream/loop_driver.py +0 -0
  160. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/stream/result.py +0 -0
  161. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/stream/synthetic_events.py +0 -0
  162. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/stream/transcript_gate.py +0 -0
  163. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/subagent/__init__.py +0 -0
  164. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/subagent/active_run_registry.py +0 -0
  165. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/subagent/boundary_snapshot.py +0 -0
  166. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/subagent/cache_safe_params.py +0 -0
  167. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/subagent/display_projector.py +0 -0
  168. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/subagent/fork_boilerplate.py +0 -0
  169. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/subagent/fork_ports.py +0 -0
  170. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/subagent/fork_worktree_notice.py +0 -0
  171. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/subagent/forked_runner.py +0 -0
  172. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/subagent/orchestrator.py +0 -0
  173. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/subagent/progress.py +0 -0
  174. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/subagent/progress_dispatcher.py +0 -0
  175. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/subagent/prompt.py +0 -0
  176. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/subagent/reasoning_extractor.py +0 -0
  177. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/subagent/runner.py +0 -0
  178. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/subagent/subagent_termination_classifier.py +0 -0
  179. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/subagent/transcript.py +0 -0
  180. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/loop/subagent/transcript_message_builder.py +0 -0
  181. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/memory/__init__.py +0 -0
  182. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/memory/instruction/__init__.py +0 -0
  183. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/memory/instruction/exclusion.py +0 -0
  184. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/memory/instruction/external_includes.py +0 -0
  185. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/memory/instruction/loader.py +0 -0
  186. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/memory/instruction/read_state_seeder.py +0 -0
  187. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/memory/instruction/resolver.py +0 -0
  188. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/memory/instruction/runtime.py +0 -0
  189. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/memory/instruction/sections.py +0 -0
  190. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/memory/instruction/types.py +0 -0
  191. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/memory/instruction/worktree_skip.py +0 -0
  192. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/memory/memdir/__init__.py +0 -0
  193. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/memory/memdir/_deprecated/agent_memory/agent_memory.py +0 -0
  194. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/memory/memdir/age.py +0 -0
  195. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/memory/memdir/attachments.py +0 -0
  196. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/memory/memdir/cursor_store.py +0 -0
  197. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/memory/memdir/entrypoint_context.py +0 -0
  198. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/memory/memdir/extractor.py +0 -0
  199. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/memory/memdir/fork_concurrency.py +0 -0
  200. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/memory/memdir/gate.py +0 -0
  201. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/memory/memdir/loader.py +0 -0
  202. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/memory/memdir/memory_saved.py +0 -0
  203. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/memory/memdir/metrics.py +0 -0
  204. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/memory/memdir/paths.py +0 -0
  205. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/memory/memdir/prefetch.py +0 -0
  206. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/memory/memdir/prompts/__init__.py +0 -0
  207. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/memory/memdir/prompts/_shared.py +0 -0
  208. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/memory/memdir/prompts/select_memories.py +0 -0
  209. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/memory/memdir/recall.py +0 -0
  210. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/memory/memdir/recall_service.py +0 -0
  211. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/memory/memdir/runtime.py +0 -0
  212. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/memory/memdir/scan.py +0 -0
  213. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/memory/memdir/side_query.py +0 -0
  214. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/memory/memdir/tool_scope.py +0 -0
  215. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/memory/memdir/tunables.py +0 -0
  216. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/memory/memdir/types.py +0 -0
  217. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/memory/memdir/written_paths.py +0 -0
  218. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/memory/migrate_layout.py +0 -0
  219. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/memory/session/__init__.py +0 -0
  220. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/memory/session/compact_bridge.py +0 -0
  221. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/memory/session/extractor.py +0 -0
  222. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/memory/session/prompts.py +0 -0
  223. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/memory/session/session_memory.py +0 -0
  224. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/memory/session/tool_scope.py +0 -0
  225. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/observability/evaluation/__init__.py +0 -0
  226. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/observability/evaluation/checkers/__init__.py +0 -0
  227. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/observability/evaluation/checkers/base.py +0 -0
  228. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/observability/evaluation/checkers/compaction.py +0 -0
  229. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/observability/evaluation/checkers/degradation.py +0 -0
  230. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/observability/evaluation/checkers/exit_quality.py +0 -0
  231. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/observability/evaluation/checkers/session_memory.py +0 -0
  232. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/observability/evaluation/checkers/tool_behavior.py +0 -0
  233. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/observability/evaluation/retention_scheduler.py +0 -0
  234. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/observability/evaluation/service.py +0 -0
  235. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/observability/evaluation/state.py +0 -0
  236. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/observability/evaluation/store.py +0 -0
  237. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/observability/events/accumulated_text_scope.py +0 -0
  238. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/observability/events/agent_defaults.py +0 -0
  239. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/observability/events/api_retry_projection.py +0 -0
  240. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/observability/events/factory.py +0 -0
  241. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/observability/events/model_end_text_backfill.py +0 -0
  242. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/observability/events/subagent_event_mapper.py +0 -0
  243. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/observability/events/subagent_window_text_guard.py +0 -0
  244. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/observability/events/tool_call_id_resolver.py +0 -0
  245. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/observability/events/tool_outcome_resolver.py +0 -0
  246. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/observability/events/workflow_container_projector.py +0 -0
  247. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/observability/events/workflow_event_mapper.py +0 -0
  248. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/observability/logging/__init__.py +0 -0
  249. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/observability/logging/debug_burst.py +0 -0
  250. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/observability/logging/logging_config.py +0 -0
  251. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/observability/logging/logging_contract.py +0 -0
  252. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/observability/replay/__init__.py +0 -0
  253. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/observability/replay/cli.py +0 -0
  254. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/observability/replay/service.py +0 -0
  255. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/observability/replay/store.py +0 -0
  256. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/observability/replay/ui.py +0 -0
  257. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/observability/trace/collector.py +0 -0
  258. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/observability/trace/event_emitter.py +0 -0
  259. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/observability/trace/hook_event_emitter.py +0 -0
  260. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/observability/trace/models.py +0 -0
  261. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/observability/trace/sqlite_store.py +0 -0
  262. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/observability/trace/trace_callback.py +0 -0
  263. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/observability/trace/trace_lifecycle_collector.py +0 -0
  264. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/plugin/__init__.py +0 -0
  265. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/plugin/builtin.py +0 -0
  266. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/plugin/config.py +0 -0
  267. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/plugin/loader.py +0 -0
  268. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/plugin/manifest.py +0 -0
  269. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/plugin/registries.py +0 -0
  270. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/plugin/types.py +0 -0
  271. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/provider/__init__.py +0 -0
  272. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/provider/anthropic.py +0 -0
  273. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/provider/compatible_chat_openai.py +0 -0
  274. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/provider/env.py +0 -0
  275. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/provider/model_profile.py +0 -0
  276. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/provider/openai.py +0 -0
  277. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/provider/semantics/__init__.py +0 -0
  278. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/provider/semantics/answer_assembler.py +0 -0
  279. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/provider/semantics/contracts.py +0 -0
  280. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/provider/semantics/families/__init__.py +0 -0
  281. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/provider/semantics/families/anthropic.py +0 -0
  282. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/provider/semantics/families/anthropic_codec.py +0 -0
  283. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/provider/semantics/families/anthropic_finish_reason.py +0 -0
  284. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/provider/semantics/families/anthropic_interpreter.py +0 -0
  285. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/provider/semantics/families/anthropic_normalizer.py +0 -0
  286. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/provider/semantics/families/compatible_openai.py +0 -0
  287. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/provider/semantics/families/compatible_openai_codec.py +0 -0
  288. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/provider/semantics/families/compatible_openai_finish_reason.py +0 -0
  289. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/provider/semantics/families/compatible_openai_interpreter.py +0 -0
  290. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/provider/semantics/families/compatible_openai_normalizer.py +0 -0
  291. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/provider/semantics/families/openai.py +0 -0
  292. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/provider/semantics/families/openai_codec.py +0 -0
  293. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/provider/semantics/families/openai_finish_reason.py +0 -0
  294. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/provider/semantics/families/openai_interpreter.py +0 -0
  295. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/provider/semantics/families/openai_normalizer.py +0 -0
  296. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/provider/semantics/finish_reason_normalizer.py +0 -0
  297. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/provider/semantics/message_normalizer.py +0 -0
  298. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/provider/semantics/profile.py +0 -0
  299. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/provider/semantics/registry.py +0 -0
  300. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/provider/semantics/request_codec.py +0 -0
  301. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/provider/semantics/runtime.py +0 -0
  302. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/provider/semantics/stream_normalizer.py +0 -0
  303. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/provider/semantics/thinking_capability.py +0 -0
  304. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/provider/semantics/tool_call_interpreter.py +0 -0
  305. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/provider/semantics/turn_accumulator.py +0 -0
  306. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/provider/stream_idle_watchdog.py +0 -0
  307. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/session/__init__.py +0 -0
  308. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/session/cleanup_registry.py +0 -0
  309. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/session/conversation_factory.py +0 -0
  310. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/session/conversation_recovery.py +0 -0
  311. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/session/plan_mode.py +0 -0
  312. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/session/plan_mode_attachments.py +0 -0
  313. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/session/protocol.py +0 -0
  314. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/session/recovery.py +0 -0
  315. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/task_runtime/__init__.py +0 -0
  316. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/task_runtime/core/__init__.py +0 -0
  317. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/task_runtime/core/ids.py +0 -0
  318. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/task_runtime/core/interfaces.py +0 -0
  319. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/task_runtime/core/notification_priority.py +0 -0
  320. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/task_runtime/core/types.py +0 -0
  321. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/task_runtime/integrations/__init__.py +0 -0
  322. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/task_runtime/integrations/loop_adapter.py +0 -0
  323. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/task_runtime/integrations/loop_integration.py +0 -0
  324. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/task_runtime/integrations/prefetch_providers.py +0 -0
  325. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/task_runtime/integrations/provider_factory.py +0 -0
  326. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/task_runtime/integrations/queued_command_provider.py +0 -0
  327. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/task_runtime/integrations/sqlite_queued_command_provider.py +0 -0
  328. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/task_runtime/integrations/tool_use_summary_provider.py +0 -0
  329. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/task_runtime/orchestrator/__init__.py +0 -0
  330. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/task_runtime/orchestrator/runtime.py +0 -0
  331. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/task_runtime/output/__init__.py +0 -0
  332. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/task_runtime/output/sink.py +0 -0
  333. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/task_runtime/policy/__init__.py +0 -0
  334. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/task_runtime/policy/withhold_visibility.py +0 -0
  335. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/task_runtime/queue/__init__.py +0 -0
  336. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/task_runtime/queue/in_memory.py +0 -0
  337. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/task_runtime/skill_prefetch/__init__.py +0 -0
  338. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/task_runtime/skill_prefetch/attachments.py +0 -0
  339. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/task_runtime/skill_prefetch/models.py +0 -0
  340. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/task_runtime/skill_prefetch/provider.py +0 -0
  341. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/task_runtime/store/__init__.py +0 -0
  342. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/task_runtime/store/file_store.py +0 -0
  343. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/task_runtime/store/in_memory.py +0 -0
  344. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/task_runtime/tasklist/__init__.py +0 -0
  345. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/task_runtime/tasklist/config_home_paths.py +0 -0
  346. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/task_runtime/tasklist/high_water_mark.py +0 -0
  347. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/task_runtime/tasklist/lock.py +0 -0
  348. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/task_runtime/tasklist/models.py +0 -0
  349. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/task_runtime/tasklist/notifier.py +0 -0
  350. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/task_runtime/tasklist/path_resolver.py +0 -0
  351. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/task_runtime/tasklist/paths.py +0 -0
  352. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/task_runtime/tasklist/reader.py +0 -0
  353. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/task_runtime/tasklist/store.py +0 -0
  354. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/task_runtime/tasks/__init__.py +0 -0
  355. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/task_runtime/tasks/ai_analysis/__init__.py +0 -0
  356. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/task_runtime/tasks/ai_analysis/base.py +0 -0
  357. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/task_runtime/tasks/ai_analysis/evaluation.py +0 -0
  358. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/task_runtime/tasks/ai_analysis/registry.py +0 -0
  359. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/task_runtime/tasks/ai_analysis/scheduler.py +0 -0
  360. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/task_runtime/tasks/base/__init__.py +0 -0
  361. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/task_runtime/tasks/base/contracts.py +0 -0
  362. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/task_runtime/tasks/custom/__init__.py +0 -0
  363. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/task_runtime/tasks/custom/executor.py +0 -0
  364. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/task_runtime/tasks/custom/notification.py +0 -0
  365. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/task_runtime/tasks/custom/semantics.py +0 -0
  366. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/task_runtime/tasks/custom/spec.py +0 -0
  367. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/task_runtime/tasks/dream_task/__init__.py +0 -0
  368. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/task_runtime/tasks/dream_task/executor.py +0 -0
  369. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/task_runtime/tasks/dream_task/notification.py +0 -0
  370. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/task_runtime/tasks/dream_task/semantics.py +0 -0
  371. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/task_runtime/tasks/dream_task/spec.py +0 -0
  372. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/task_runtime/tasks/dream_task/state.py +0 -0
  373. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/task_runtime/tasks/in_process_teammate/__init__.py +0 -0
  374. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/task_runtime/tasks/in_process_teammate/executor.py +0 -0
  375. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/task_runtime/tasks/in_process_teammate/notification.py +0 -0
  376. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/task_runtime/tasks/in_process_teammate/semantics.py +0 -0
  377. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/task_runtime/tasks/in_process_teammate/spec.py +0 -0
  378. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/task_runtime/tasks/local_agent/__init__.py +0 -0
  379. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/task_runtime/tasks/local_agent/executor.py +0 -0
  380. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/task_runtime/tasks/local_agent/notification.py +0 -0
  381. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/task_runtime/tasks/local_agent/runner.py +0 -0
  382. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/task_runtime/tasks/local_agent/semantics.py +0 -0
  383. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/task_runtime/tasks/local_agent/spec.py +0 -0
  384. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/task_runtime/tasks/local_bash/__init__.py +0 -0
  385. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/task_runtime/tasks/local_bash/executor.py +0 -0
  386. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/task_runtime/tasks/local_bash/notification.py +0 -0
  387. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/task_runtime/tasks/local_bash/semantics.py +0 -0
  388. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/task_runtime/tasks/local_bash/spec.py +0 -0
  389. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/task_runtime/tasks/remote_agent/__init__.py +0 -0
  390. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/task_runtime/tasks/remote_agent/backend.py +0 -0
  391. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/task_runtime/tasks/remote_agent/executor.py +0 -0
  392. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/task_runtime/tasks/remote_agent/notification.py +0 -0
  393. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/task_runtime/tasks/remote_agent/semantics.py +0 -0
  394. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/task_runtime/tasks/remote_agent/spec.py +0 -0
  395. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/task_runtime/tasks/trace_cleanup/__init__.py +0 -0
  396. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/task_runtime/tasks/trace_cleanup/bootstrap.py +0 -0
  397. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/task_runtime/tasks/trace_cleanup/executor.py +0 -0
  398. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/task_runtime/tasks/trace_cleanup/scheduler.py +0 -0
  399. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/__init__.py +0 -0
  400. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/accept_edits_fast_path.py +0 -0
  401. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/adapter.py +0 -0
  402. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/agent_home_bypass.py +0 -0
  403. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/auto_mode/__init__.py +0 -0
  404. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/auto_mode/allowlist.py +0 -0
  405. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/auto_mode/classifier/__init__.py +0 -0
  406. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/auto_mode/classifier/classifier.py +0 -0
  407. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/auto_mode/classifier/parser.py +0 -0
  408. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/auto_mode/classifier/prompt.py +0 -0
  409. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/auto_mode/classifier/schema.py +0 -0
  410. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/auto_mode/classifier/transcript.py +0 -0
  411. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/auto_mode/config.py +0 -0
  412. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/auto_mode/config_update.py +0 -0
  413. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/auto_mode/decision.py +0 -0
  414. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/auto_mode/events.py +0 -0
  415. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/auto_mode/factory.py +0 -0
  416. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/auto_mode/feedback.py +0 -0
  417. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/auto_mode/hook.py +0 -0
  418. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/auto_mode/rule_stripping.py +0 -0
  419. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/auto_mode/state.py +0 -0
  420. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/base.py +0 -0
  421. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/capabilities.py +0 -0
  422. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/classifier_denial_bridge.py +0 -0
  423. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/classifier_denial_limit.py +0 -0
  424. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/classifier_denial_tracking.py +0 -0
  425. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/denial_tracking.py +0 -0
  426. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/denial_tracking_bridge.py +0 -0
  427. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/errors.py +0 -0
  428. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/execution/__init__.py +0 -0
  429. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/execution/appliers/__init__.py +0 -0
  430. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/execution/appliers/auto_approved.py +0 -0
  431. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/execution/appliers/effort_override.py +0 -0
  432. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/execution/appliers/model_override.py +0 -0
  433. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/execution/appliers/set_cwd.py +0 -0
  434. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/execution/appliers/stubs.py +0 -0
  435. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/execution/callback_bridge.py +0 -0
  436. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/execution/engine.py +0 -0
  437. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/execution/message_adapter.py +0 -0
  438. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/execution/models.py +0 -0
  439. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/execution/parity.py +0 -0
  440. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/execution/payload_validator.py +0 -0
  441. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/execution/planner.py +0 -0
  442. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/execution/policy.py +0 -0
  443. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/execution/side_effect_collector.py +0 -0
  444. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/execution/side_effect_merge.py +0 -0
  445. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/failure_event_emitter.py +0 -0
  446. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/identical_call_cache.py +0 -0
  447. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/inner_permission_chain.py +0 -0
  448. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/limits.py +0 -0
  449. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/loader.py +0 -0
  450. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/loop_loader.py +0 -0
  451. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/loop_runtime_context.py +0 -0
  452. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/messages.py +0 -0
  453. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/models.py +0 -0
  454. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/outer_permission_resolver.py +0 -0
  455. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/override.py +0 -0
  456. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/path_safety.py +0 -0
  457. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/permission_context.py +0 -0
  458. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/permission_decision.py +0 -0
  459. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/permission_orchestrator.py +0 -0
  460. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/permission_rule_matcher.py +0 -0
  461. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/permission_rules.py +0 -0
  462. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/permission_settings_loader.py +0 -0
  463. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/permission_settings_sync.py +0 -0
  464. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/permission_snapshot.py +0 -0
  465. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/pipeline.py +0 -0
  466. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/policy.py +0 -0
  467. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/policy_decorator.py +0 -0
  468. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/process_loader.py +0 -0
  469. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/progress/__init__.py +0 -0
  470. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/progress/event.py +0 -0
  471. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/progress/sampler.py +0 -0
  472. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/prompt/__init__.py +0 -0
  473. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/prompt/_abort.py +0 -0
  474. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/prompt/cli_interactive.py +0 -0
  475. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/prompt/handler.py +0 -0
  476. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/prompt/headless.py +0 -0
  477. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/prompt/legacy_resolver_adapter.py +0 -0
  478. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/prompt/messages.py +0 -0
  479. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/prompt/race.py +0 -0
  480. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/prompt/session_mode.py +0 -0
  481. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/prompt/types.py +0 -0
  482. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/prompt_context.py +0 -0
  483. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/read_ignore_patterns.py +0 -0
  484. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/read_permission.py +0 -0
  485. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/registry.py +0 -0
  486. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/resolvers/__init__.py +0 -0
  487. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/resolvers/agent_session.py +0 -0
  488. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/resolvers/background.py +0 -0
  489. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/resolvers/base.py +0 -0
  490. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/resolvers/conversation.py +0 -0
  491. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/resolvers/workflow.py +0 -0
  492. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/session_hints.py +0 -0
  493. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/session_store.py +0 -0
  494. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/shell_error.py +0 -0
  495. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/smoke_test_runtime.py +0 -0
  496. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/state_bridge.py +0 -0
  497. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/tool_message_status.py +0 -0
  498. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/tool_name_constants.py +0 -0
  499. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tool_runtime/tool_schema_cache.py +0 -0
  500. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/__init__.py +0 -0
  501. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/agent/__init__.py +0 -0
  502. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/agent/backend.py +0 -0
  503. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/agent/built_in/__init__.py +0 -0
  504. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/agent/built_in/agentx_guide.py +0 -0
  505. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/agent/built_in/explore.py +0 -0
  506. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/agent/built_in/general.py +0 -0
  507. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/agent/built_in/plan.py +0 -0
  508. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/agent/built_in/statusline_setup.py +0 -0
  509. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/agent/built_in/verification.py +0 -0
  510. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/agent/builtin_subagent_loader.py +0 -0
  511. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/agent/cwd_resolution.py +0 -0
  512. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/agent/limits.py +0 -0
  513. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/agent/loader.py +0 -0
  514. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/agent/memory_paths.py +0 -0
  515. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/agent/memory_prompt.py +0 -0
  516. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/agent/memory_snapshot.py +0 -0
  517. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/agent/models.py +0 -0
  518. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/agent/prompt.py +0 -0
  519. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/agent/prompt_scope.py +0 -0
  520. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/agent/registry/__init__.py +0 -0
  521. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/agent/registry/config.py +0 -0
  522. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/agent/registry/registry.py +0 -0
  523. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/agent/scope.py +0 -0
  524. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/agent/tool.py +0 -0
  525. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/ask_user_question/__init__.py +0 -0
  526. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/ask_user_question/constants.py +0 -0
  527. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/ask_user_question/html_preview.py +0 -0
  528. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/ask_user_question/models.py +0 -0
  529. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/ask_user_question/prompt.py +0 -0
  530. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/ask_user_question/tool.py +0 -0
  531. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/ask_user_question/validators.py +0 -0
  532. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/bash/__init__.py +0 -0
  533. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/bash/ast_security.py +0 -0
  534. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/bash/auto_mode_adapter.py +0 -0
  535. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/bash/backend.py +0 -0
  536. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/bash/bash_hardening.py +0 -0
  537. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/bash/bash_runtime_contract.py +0 -0
  538. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/bash/boundary_check.py +0 -0
  539. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/bash/command_allow_rules.py +0 -0
  540. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/bash/cwd_reporter.py +0 -0
  541. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/bash/events.py +0 -0
  542. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/bash/l1_decision_reason.py +0 -0
  543. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/bash/limits.py +0 -0
  544. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/bash/mode_validation.py +0 -0
  545. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/bash/models.py +0 -0
  546. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/bash/observability.py +0 -0
  547. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/bash/output_tracker.py +0 -0
  548. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/bash/output_utils.py +0 -0
  549. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/bash/path_security.py +0 -0
  550. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/bash/prompt.py +0 -0
  551. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/bash/read_only_validation.py +0 -0
  552. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/bash/redirect_classifier.py +0 -0
  553. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/bash/result_presenter.py +0 -0
  554. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/bash/sandbox_decision.py +0 -0
  555. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/bash/security.py +0 -0
  556. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/bash/sed_edit_parser.py +0 -0
  557. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/bash/sed_validation.py +0 -0
  558. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/bash/semantic_matrix.py +0 -0
  559. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/bash/semantics.py +0 -0
  560. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/bash/shell_locator.py +0 -0
  561. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/bash/shell_quoting.py +0 -0
  562. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/bash/task_runtime.py +0 -0
  563. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/bash/tool.py +0 -0
  564. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/bash/windows_shell_quoting.py +0 -0
  565. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/edit/__init__.py +0 -0
  566. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/edit/backend.py +0 -0
  567. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/edit/diff_generator.py +0 -0
  568. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/edit/display_builder.py +0 -0
  569. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/edit/git_diff_generator.py +0 -0
  570. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/edit/limits.py +0 -0
  571. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/edit/models.py +0 -0
  572. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/edit/prompt.py +0 -0
  573. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/edit/quote_match.py +0 -0
  574. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/edit/quote_normalizer.py +0 -0
  575. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/edit/settings_validator.py +0 -0
  576. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/edit/staleness.py +0 -0
  577. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/edit/tool.py +0 -0
  578. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/edit/validator.py +0 -0
  579. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/glob/__init__.py +0 -0
  580. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/glob/models.py +0 -0
  581. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/glob/pagination.py +0 -0
  582. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/glob/prompt.py +0 -0
  583. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/glob/rg_list_backend.py +0 -0
  584. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/glob/rg_pattern.py +0 -0
  585. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/glob/tool.py +0 -0
  586. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/grep/__init__.py +0 -0
  587. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/grep/backend.py +0 -0
  588. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/grep/models.py +0 -0
  589. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/grep/prompt.py +0 -0
  590. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/grep/rg_subprocess_controller.py +0 -0
  591. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/grep/tool.py +0 -0
  592. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/plan_mode/__init__.py +0 -0
  593. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/plan_mode/constants.py +0 -0
  594. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/plan_mode/models.py +0 -0
  595. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/plan_mode/prompt.py +0 -0
  596. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/plan_mode/tool.py +0 -0
  597. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/read/__init__.py +0 -0
  598. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/read/backend.py +0 -0
  599. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/read/limits.py +0 -0
  600. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/read/models.py +0 -0
  601. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/read/prompt.py +0 -0
  602. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/read/tool.py +0 -0
  603. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/registry_names.py +0 -0
  604. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/ripgrep_plugin_exclusions.py +0 -0
  605. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/search_path_resolver.py +0 -0
  606. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/shared/__init__.py +0 -0
  607. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/shared/read_state_guard.py +0 -0
  608. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/shared/staleness.py +0 -0
  609. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/skill/__init__.py +0 -0
  610. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/skill/argument_substitution.py +0 -0
  611. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/skill/bundled/__init__.py +0 -0
  612. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/skill/bundled/prompts.py +0 -0
  613. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/skill/bundled/registry.py +0 -0
  614. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/skill/catalog.py +0 -0
  615. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/skill/dynamic_catalog.py +0 -0
  616. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/skill/dynamic_discoverer.py +0 -0
  617. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/skill/file_discovery.py +0 -0
  618. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/skill/fork.py +0 -0
  619. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/skill/guards.py +0 -0
  620. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/skill/hook_registration.py +0 -0
  621. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/skill/loader.py +0 -0
  622. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/skill/models.py +0 -0
  623. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/skill/multi_source_repository.py +0 -0
  624. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/skill/paths_matcher.py +0 -0
  625. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/skill/plugin_loader.py +0 -0
  626. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/skill/policy.py +0 -0
  627. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/skill/prompt.py +0 -0
  628. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/skill/repository_factory.py +0 -0
  629. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/skill/source_paths.py +0 -0
  630. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/skill/tool.py +0 -0
  631. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/task_create/__init__.py +0 -0
  632. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/task_create/hooks.py +0 -0
  633. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/task_create/limits.py +0 -0
  634. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/task_create/models.py +0 -0
  635. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/task_create/prompt.py +0 -0
  636. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/task_create/tool.py +0 -0
  637. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/task_get/__init__.py +0 -0
  638. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/task_get/models.py +0 -0
  639. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/task_get/prompt.py +0 -0
  640. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/task_get/tool.py +0 -0
  641. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/task_list/__init__.py +0 -0
  642. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/task_list/models.py +0 -0
  643. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/task_list/prompt.py +0 -0
  644. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/task_list/tool.py +0 -0
  645. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/task_update/__init__.py +0 -0
  646. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/task_update/hooks.py +0 -0
  647. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/task_update/models.py +0 -0
  648. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/task_update/prompt.py +0 -0
  649. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/task_update/tool.py +0 -0
  650. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/webfetch/__init__.py +0 -0
  651. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/webfetch/backend.py +0 -0
  652. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/webfetch/limits.py +0 -0
  653. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/webfetch/loader.py +0 -0
  654. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/webfetch/models.py +0 -0
  655. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/webfetch/preapproved.py +0 -0
  656. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/webfetch/prompt.py +0 -0
  657. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/webfetch/summary.py +0 -0
  658. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/webfetch/tool.py +0 -0
  659. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/websearch/__init__.py +0 -0
  660. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/websearch/backend.py +0 -0
  661. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/websearch/events.py +0 -0
  662. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/websearch/limits.py +0 -0
  663. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/websearch/loader.py +0 -0
  664. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/websearch/models.py +0 -0
  665. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/websearch/prompt.py +0 -0
  666. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/websearch/tool.py +0 -0
  667. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/write/__init__.py +0 -0
  668. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/write/backend.py +0 -0
  669. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/write/display_builder.py +0 -0
  670. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/write/limits.py +0 -0
  671. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/write/models.py +0 -0
  672. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/write/prompt.py +0 -0
  673. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/write/read_state_validator.py +0 -0
  674. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/write/tool.py +0 -0
  675. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/tools/write/validator.py +0 -0
  676. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/utils/__init__.py +0 -0
  677. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/utils/agent_settings.py +0 -0
  678. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/utils/claude_temp_paths.py +0 -0
  679. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/utils/cwd.py +0 -0
  680. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/utils/display_models.py +0 -0
  681. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/utils/file_mtime.py +0 -0
  682. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/utils/git/__init__.py +0 -0
  683. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/utils/git/gitignore.py +0 -0
  684. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/utils/git_roots.py +0 -0
  685. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/utils/git_settings.py +0 -0
  686. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/utils/host_platform.py +0 -0
  687. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/utils/path.py +0 -0
  688. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/utils/path_hierarchy.py +0 -0
  689. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/utils/path_user_input.py +0 -0
  690. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/utils/permissions/__init__.py +0 -0
  691. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/utils/permissions/filesystem.py +0 -0
  692. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/utils/rg_executable.py +0 -0
  693. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/utils/settings/__init__.py +0 -0
  694. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/utils/settings/managed_path.py +0 -0
  695. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/utils/structured_diff.py +0 -0
  696. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/utils/subprocess_text.py +0 -0
  697. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/utils/temp_paths.py +0 -0
  698. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/utils/tool_paths.py +0 -0
  699. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/utils/tool_result_storage.py +0 -0
  700. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/utils/unc_path.py +0 -0
  701. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/utils/win_reserved_paths.py +0 -0
  702. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/utils/windows_paths.py +0 -0
  703. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/workflow/__init__.py +0 -0
  704. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/workflow/batch.py +0 -0
  705. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/workflow/catalog_registry.py +0 -0
  706. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/workflow/dag.py +0 -0
  707. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/workflow/display_enricher.py +0 -0
  708. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/workflow/display_resolver.py +0 -0
  709. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/workflow/event_adapter/__init__.py +0 -0
  710. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/workflow/event_adapter/adapter.py +0 -0
  711. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/workflow/event_adapter/depth_resolver.py +0 -0
  712. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/workflow/event_adapter/handlers/__init__.py +0 -0
  713. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/workflow/event_adapter/handlers/display_support.py +0 -0
  714. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/workflow/event_adapter/handlers/parallel_handler.py +0 -0
  715. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/workflow/event_adapter/handlers/route_handler.py +0 -0
  716. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/workflow/event_adapter/handlers/stage_handler.py +0 -0
  717. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/workflow/event_adapter/scope_resolver.py +0 -0
  718. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/workflow/event_adapter/session_router.py +0 -0
  719. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/workflow/event_adapter/stack.py +0 -0
  720. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/workflow/event_adapter/structure_lifecycle_guard.py +0 -0
  721. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/workflow/event_adapter/structure_utils.py +0 -0
  722. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/workflow/event_adapter/types.py +0 -0
  723. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/workflow/execution.py +0 -0
  724. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/workflow/loop_factory.py +0 -0
  725. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/workflow/memory_drain_registry.py +0 -0
  726. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/workflow/memory_session_policy.py +0 -0
  727. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/workflow/node.py +0 -0
  728. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/workflow/node_adapter.py +0 -0
  729. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/workflow/patterns/__init__.py +0 -0
  730. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/workflow/patterns/chaining.py +0 -0
  731. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/workflow/patterns/evaluator_optimizer.py +0 -0
  732. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/workflow/patterns/orchestrator.py +0 -0
  733. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/workflow/patterns/parallelization.py +0 -0
  734. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/workflow/patterns/routing.py +0 -0
  735. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/workflow/patterns/specs.py +0 -0
  736. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/workflow/projection_isolation.py +0 -0
  737. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/workflow/r8_event_stream_benchmark.py +0 -0
  738. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/workflow/run_handle.py +0 -0
  739. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/workflow/run_outcome.py +0 -0
  740. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/workflow/run_session.py +0 -0
  741. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/workflow/runtime.py +0 -0
  742. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/workflow/runtime_scope_path.py +0 -0
  743. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/workflow/runtime_scope_registry.py +0 -0
  744. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/workflow/state.py +0 -0
  745. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/workflow/structure_collector.py +0 -0
  746. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/workflow/structure_errors.py +0 -0
  747. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/workflow/structure_validation.py +0 -0
  748. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/workflow/task_key_domains.py +0 -0
  749. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/workflow/ui_catalog.py +0 -0
  750. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/workflow/validation.py +0 -0
  751. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/workspace/__init__.py +0 -0
  752. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/workspace/boundary.py +0 -0
  753. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/workspace/config.py +0 -0
  754. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/workspace/errors.py +0 -0
  755. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/workspace/grant.py +0 -0
  756. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/workspace/l3_root_grant.py +0 -0
  757. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/workspace/path_canonical.py +0 -0
  758. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/workspace/path_key_normalizer.py +0 -0
  759. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/workspace/plans.py +0 -0
  760. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/workspace/project_key.py +0 -0
  761. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/workspace/project_memory_layout.py +0 -0
  762. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/workspace/resolver.py +0 -0
  763. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/workspace/root_grant_manager.py +0 -0
  764. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/workspace/tool_boundary.py +0 -0
  765. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/workspace/validators.py +0 -0
  766. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx/workspace/view.py +0 -0
  767. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx_python.egg-info/dependency_links.txt +0 -0
  768. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx_python.egg-info/not-zip-safe +0 -0
  769. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx_python.egg-info/requires.txt +0 -0
  770. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/langchain_agentx_python.egg-info/top_level.txt +0 -0
  771. {langchain-agentx-python-2.1.6 → langchain-agentx-python-2.1.8}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: langchain-agentx-python
3
- Version: 2.1.6
3
+ Version: 2.1.8
4
4
  Summary: LangChain/LangGraph-based agent utilities for CodeBaseX.
5
5
  Author-email: GoodMood2008 <GoodMood2008@users.noreply.github.com>
6
6
  License: Apache License
@@ -11,7 +11,7 @@ from langchain_agentx import create_loop_agent
11
11
  ```
12
12
  """
13
13
 
14
- __version__ = "2.1.6"
14
+ __version__ = "2.1.8"
15
15
 
16
16
  from .loop import ( # noqa: F401
17
17
  create_loop_agent,
@@ -81,8 +81,13 @@ class TraceConfig:
81
81
  """观测追踪配置。
82
82
 
83
83
  CC 对照:options.debug / queryTracking 等。
84
+
85
+ - ``enabled``:是否挂 TraceCollector 埋点(lifecycle / callback)。
86
+ - ``persist``:是否挂 ``SqliteTraceStore`` 写 traces.db;默认 False,避免盘胀。
87
+ 亦可经环境变量 ``LANGCHAIN_AGENTX_TRACE_PERSIST=1`` 打开(见 persist_policy)。
84
88
  """
85
89
  enabled: bool = True
90
+ persist: bool = False
86
91
  visibility: str | None = None
87
92
  parent_run_id: str | None = None
88
93
  parent_tool_call_id: str | None = None
@@ -9,7 +9,8 @@ loop_runtime_overlay.py — L4 graph_factory 运行期 overlay(IF-G6)
9
9
  → graph_factory(overlay) → apply_to(AgentLoopConfig) → create_loop_agent
10
10
 
11
11
  当前裁剪范围:
12
- 仅 session_id、trace 父链、subagent 标记、capabilities、enable_trace;不含 container_type。
12
+ 仅 session_id、trace 父链、subagent 标记、capabilities、enable_trace / trace_persist;
13
+ 不含 container_type。
13
14
  """
14
15
 
15
16
  from __future__ import annotations
@@ -26,6 +27,7 @@ class LoopRuntimeOverlay:
26
27
 
27
28
  session_id: str | None = None
28
29
  enable_trace: bool | None = None
30
+ trace_persist: bool | None = None
29
31
  capabilities: Any = None
30
32
  parent_conversation_session_id: str | None = None
31
33
  is_subagent: bool | None = None
@@ -41,6 +43,9 @@ class LoopRuntimeOverlay:
41
43
  if self.enable_trace is not None:
42
44
  trace = replace(trace, enabled=self.enable_trace)
43
45
  trace_changed = True
46
+ if self.trace_persist is not None:
47
+ trace = replace(trace, persist=self.trace_persist)
48
+ trace_changed = True
44
49
  if self.parent_conversation_session_id is not None:
45
50
  trace = replace(trace, parent_conversation_session_id=self.parent_conversation_session_id)
46
51
  trace_changed = True
@@ -48,6 +48,7 @@ TRANSITION_TOKEN_BUDGET_CONTINUATION = "token_budget_continuation"
48
48
  DEFAULT_TOKEN_BUDGET_MAX_CONTINUATIONS = 3
49
49
 
50
50
  # 错误结束 terminal_reason 集合(finish payload is_error 判据)
51
+ # D-EVT-3:含 aborted_* / hook_stopped,与 build_loop_terminal 对齐
51
52
  ERROR_TERMINAL_REASONS = frozenset(
52
53
  {
53
54
  TERMINAL_REASON_ERROR,
@@ -60,6 +61,9 @@ ERROR_TERMINAL_REASONS = frozenset(
60
61
  TERMINAL_REASON_MAX_TOKENS,
61
62
  TERMINAL_REASON_BLOCKING_LIMIT,
62
63
  TERMINAL_REASON_CLASSIFIER_DENIAL_LIMIT,
64
+ TERMINAL_REASON_ABORTED_STREAMING,
65
+ TERMINAL_REASON_ABORTED_TOOLS,
66
+ TERMINAL_REASON_HOOK_STOPPED,
63
67
  }
64
68
  )
65
69
 
@@ -305,6 +305,7 @@ def _flatten_config_for_runtime(config: AgentLoopConfig) -> _FlatLoopConfig:
305
305
  agent_depth=config.agent_depth,
306
306
  subagent_type=config.subagent.subagent_type,
307
307
  trace_enabled=config.trace.enabled,
308
+ trace_persist=config.trace.persist,
308
309
  headless=config.headless,
309
310
  model_profile=config.model_profile,
310
311
  model_profile_registry=config.model_profile_registry,
@@ -1143,9 +1144,28 @@ class LoopGraphBuilder:
1143
1144
  if not self._config.trace.enabled:
1144
1145
  return None
1145
1146
  if self._services.trace_collector is not None:
1147
+ # 显式注入:调用方自管 store 生命周期(测试 / 宿主)
1146
1148
  return self._services.trace_collector
1147
- if self._services.capabilities is not None and self._services.capabilities.trace_collector is not None:
1148
- return self._services.capabilities.trace_collector
1149
+
1150
+ from ...observability.trace.persist_policy import resolve_trace_persist
1151
+
1152
+ persist = resolve_trace_persist(configured=bool(self._config.trace.persist))
1153
+ caps = self._services.capabilities
1154
+ caps_collector = (
1155
+ caps.trace_collector
1156
+ if caps is not None and getattr(caps, "trace_collector", None) is not None
1157
+ else None
1158
+ )
1159
+
1160
+ if not persist:
1161
+ # 不落盘:复用 caps 上无 store 的 collector;若 caps 误带 store 则改用内存 collector,避免写库。
1162
+ if caps_collector is not None and getattr(caps_collector, "_store", None) is None:
1163
+ return caps_collector
1164
+ return TraceCollector(store=None)
1165
+
1166
+ # persist=True:必须挂有 store 的 collector;caps 无 store 时兜底 from_env,避免「开了 persist 仍不落盘」。
1167
+ if caps_collector is not None and getattr(caps_collector, "_store", None) is not None:
1168
+ return caps_collector
1149
1169
  return TraceCollector(SqliteTraceStore.from_env())
1150
1170
 
1151
1171
  def _resolve_response_format_setup(
@@ -42,6 +42,9 @@ class RunContext:
42
42
  child_tasks: set[asyncio.Task] = field(default_factory=set)
43
43
  child_threads: set[threading.Thread] = field(default_factory=set)
44
44
  cancel_requested: bool = False
45
+ # D-EVT-6:宿主在 cancel_tree / killAll 时写入;finish 投影读取;缺省 unknown。
46
+ # 取值:escape | workflow_stop | kill_agents | unknown;禁止从「是否有后台」猜测。
47
+ cancel_source: str | None = None
45
48
 
46
49
  def register_child(self, task: asyncio.Task) -> None:
47
50
  self.child_tasks.add(task)
@@ -167,6 +167,7 @@ class RuntimeContextFactory:
167
167
  ),
168
168
  trace=TraceConfig(
169
169
  enabled=bool(getattr(parent_ctx, "trace_enabled", True)),
170
+ persist=bool(getattr(parent_ctx, "trace_persist", False)),
170
171
  ),
171
172
  subagent=SubagentLinkage(
172
173
  is_subagent=True,
@@ -13,6 +13,7 @@ loop/subagent/async_runner.py — 子 Agent 异步生命周期管理
13
13
 
14
14
  当前裁剪范围:
15
15
  P0:删除 C4;后台仅 C3。P2:killAll 仅遍历 _BACKGROUND_HANDLES(可 Task.cancel)。
16
+ P2 投影:lifecycle / _mark_cancelled_terminal → OOB task-notification(D-EVT-5)。
16
17
  """
17
18
 
18
19
  from __future__ import annotations
@@ -22,7 +23,7 @@ import logging
22
23
  import os
23
24
  import uuid
24
25
  from dataclasses import dataclass
25
- from typing import Any
26
+ from typing import Any, Literal
26
27
 
27
28
  from langchain_agentx.loop.exit.reason_codes import (
28
29
  TERMINAL_REASON_ABORTED_STREAMING,
@@ -106,11 +107,34 @@ def _is_cancel_like_result(result: Any) -> bool:
106
107
  return getattr(result, "error_kind", None) == "aborted"
107
108
 
108
109
 
110
+ def _emit_task_notification_bookend(
111
+ *,
112
+ task_id: str,
113
+ status: Literal["completed", "failed", "stopped"],
114
+ output_file: str = "",
115
+ summary: str = "",
116
+ agent_id: str | None = None,
117
+ terminal_reason: str | None = None,
118
+ ) -> None:
119
+ """D-EVT-5:后台终态 OOB bookend;同 task_id 去重在 sink 内完成。"""
120
+ from langchain_agentx.observability.events.oob_event_sink import get_oob_event_sink
121
+
122
+ get_oob_event_sink().emit_task_notification(
123
+ task_id=task_id,
124
+ status=status,
125
+ output_file=output_file,
126
+ summary=summary,
127
+ agent_id=agent_id,
128
+ terminal_reason=terminal_reason,
129
+ )
130
+
131
+
109
132
  def _mark_cancelled_terminal(
110
133
  *,
111
134
  task_id: str,
112
135
  output_file: str,
113
136
  task_runtime: Any | None,
137
+ agent_id: str | None = None,
114
138
  ) -> None:
115
139
  """写 cancelled 输出 + TaskRuntime STOPPED(对齐 TaskRuntime.cancel / CC killed)。"""
116
140
  try:
@@ -119,18 +143,27 @@ def _mark_cancelled_terminal(
119
143
  fp.write("cancelled")
120
144
  except Exception:
121
145
  logger.debug("failed to write cancelled output for task_id=%s", task_id, exc_info=True)
122
- if task_runtime is None:
123
- return
124
- try:
125
- task_runtime.mark_terminal(
126
- task_id,
127
- TaskStatus.STOPPED,
128
- "subagent cancelled",
129
- output_file=output_file,
130
- terminal_reason="cancelled",
131
- )
132
- except Exception:
133
- logger.debug("failed to mark cancelled terminal for task_id=%s", task_id, exc_info=True)
146
+ if task_runtime is not None:
147
+ try:
148
+ task_runtime.mark_terminal(
149
+ task_id,
150
+ TaskStatus.STOPPED,
151
+ "subagent cancelled",
152
+ output_file=output_file,
153
+ terminal_reason="cancelled",
154
+ )
155
+ except Exception:
156
+ logger.debug(
157
+ "failed to mark cancelled terminal for task_id=%s", task_id, exc_info=True
158
+ )
159
+ _emit_task_notification_bookend(
160
+ task_id=task_id,
161
+ status="stopped",
162
+ output_file=output_file,
163
+ summary="cancelled",
164
+ agent_id=agent_id,
165
+ terminal_reason="cancelled",
166
+ )
134
167
 
135
168
 
136
169
  async def _execute_background_lifecycle(
@@ -146,6 +179,7 @@ async def _execute_background_lifecycle(
146
179
  """共享后台生命周期:run_subagent → 写 output → task_runtime 终态。"""
147
180
  execution_ctx = ctx
148
181
  execution_ctx.is_async = False
182
+ agent_id = getattr(ctx, "agent_id", None)
149
183
  try:
150
184
  result = await run_subagent(
151
185
  ctx=execution_ctx,
@@ -160,37 +194,64 @@ async def _execute_background_lifecycle(
160
194
  task_id=task_id,
161
195
  output_file=output_file,
162
196
  task_runtime=task_runtime,
197
+ agent_id=agent_id,
163
198
  )
164
199
  return
165
200
  with open(output_file, "w", encoding="utf-8") as fp:
166
201
  fp.write(result.content)
202
+ summary = (
203
+ result.content[:500]
204
+ if result.content
205
+ else (result.error_message or "subagent completed")
206
+ )
207
+ notif_status: Literal["completed", "failed"] = (
208
+ "completed" if result.status == "completed" else "failed"
209
+ )
167
210
  if task_runtime is not None:
168
211
  status = TaskStatus.COMPLETED if result.status == "completed" else TaskStatus.FAILED
169
212
  task_runtime.mark_terminal(
170
213
  task_id,
171
214
  status,
172
- result.content[:500] if result.content else (result.error_message or "subagent completed"),
215
+ summary,
173
216
  output_file=output_file,
174
217
  terminal_reason=result.terminal_reason or None,
175
218
  )
219
+ _emit_task_notification_bookend(
220
+ task_id=task_id,
221
+ status=notif_status,
222
+ output_file=output_file,
223
+ summary=summary,
224
+ agent_id=agent_id,
225
+ terminal_reason=result.terminal_reason or None,
226
+ )
176
227
  except asyncio.CancelledError:
177
228
  _mark_cancelled_terminal(
178
229
  task_id=task_id,
179
230
  output_file=output_file,
180
231
  task_runtime=task_runtime,
232
+ agent_id=agent_id,
181
233
  )
182
234
  raise
183
235
  except Exception as exc:
184
236
  with open(output_file, "w", encoding="utf-8") as fp:
185
237
  fp.write(str(exc))
238
+ summary = f"Subagent background lifecycle failed: {exc}"
186
239
  if task_runtime is not None:
187
240
  task_runtime.mark_terminal(
188
241
  task_id,
189
242
  TaskStatus.FAILED,
190
- f"Subagent background lifecycle failed: {exc}",
243
+ summary,
191
244
  output_file=output_file,
192
245
  terminal_reason=TERMINAL_REASON_GRAPH_RUNTIME_ERROR,
193
246
  )
247
+ _emit_task_notification_bookend(
248
+ task_id=task_id,
249
+ status="failed",
250
+ output_file=output_file,
251
+ summary=summary,
252
+ agent_id=agent_id,
253
+ terminal_reason=TERMINAL_REASON_GRAPH_RUNTIME_ERROR,
254
+ )
194
255
 
195
256
 
196
257
  def register_background_agent(
@@ -309,6 +370,7 @@ def kill_background_agent(task_id: str) -> bool:
309
370
  task_id=task_id,
310
371
  output_file=handle.output_file,
311
372
  task_runtime=handle.task_runtime,
373
+ agent_id=handle.agent_id,
312
374
  )
313
375
  return True
314
376
 
@@ -91,6 +91,7 @@ class SubagentContext:
91
91
  parent_tool_call_id: str | None = None # 触发本子 Agent 的 tool_call_id
92
92
  parent_conversation_session_id: str | None = None
93
93
  enable_trace: bool = True
94
+ trace_persist: bool = False
94
95
  runnable_config: Any = None # 父 runnable_config:仅供 tool_progress custom event 回调链;非子 raw 合并
95
96
  isolation: str = "none"
96
97
  worktree_dir: str | None = None
@@ -324,6 +325,7 @@ def create_subagent_context(
324
325
  parent_tool_call_id=parent_tool_call_id,
325
326
  parent_conversation_session_id=parent_conversation_id,
326
327
  enable_trace=bool(getattr(parent_ctx, "trace_enabled", True)),
328
+ trace_persist=bool(getattr(parent_ctx, "trace_persist", False)),
327
329
  isolation=isolation,
328
330
  worktree_dir=worktree_dir,
329
331
  workspace_root=str(parent_workspace_root),
@@ -476,6 +478,7 @@ class SubagentContextFactory:
476
478
  parent_run_id=parent_runtime.parent_run_id,
477
479
  parent_conversation_session_id=parent_runtime.parent_conversation_session_id,
478
480
  enable_trace=not skip_transcript,
481
+ trace_persist=bool(getattr(parent_runtime, "trace_persist", False)),
479
482
  workspace_root=workspace_root,
480
483
  agent_home_segment=agent_home_segment,
481
484
  cwd=effective_cwd,
@@ -108,6 +108,7 @@ def create_subagent_graph(
108
108
  ),
109
109
  trace=TraceConfig(
110
110
  enabled=ctx.enable_trace,
111
+ persist=ctx.trace_persist,
111
112
  # 背景 fork / 异步子代理默认隐藏
112
113
  visibility=(
113
114
  "hidden"
@@ -10,13 +10,21 @@ from .events import (
10
10
  LangchainAgentEvent,
11
11
  LangchainAgentEventType,
12
12
  LangGraphToLangchainAgentEventAdapter,
13
+ OOB_EVENT_QUEUE_CAP,
14
+ OobEventSink,
13
15
  RecoveryAction,
14
16
  RecoveryActionResolver,
15
17
  RecoveryPolicy,
16
18
  RecoveryPolicyMode,
17
19
  coerce_recovery_policy,
18
20
  create_langgraph_event_adapter,
21
+ drain_oob_events,
19
22
  enrich_run_result,
23
+ ensure_oob_event_sink,
24
+ get_oob_event_sink,
25
+ install_oob_event_sink,
26
+ reset_oob_event_sink,
27
+ teardown_oob_event_sink,
20
28
  )
21
29
  from .replay.service import (
22
30
  export_call_chain,
@@ -62,6 +70,8 @@ __all__ = [
62
70
  "LogContext",
63
71
  "LoggingConfigBuilder",
64
72
  "OBS_SCHEMA_VERSION",
73
+ "OOB_EVENT_QUEUE_CAP",
74
+ "OobEventSink",
65
75
  "ObservabilityLoggerAdapter",
66
76
  "build_log_context",
67
77
  "configure_logging_once",
@@ -69,6 +79,12 @@ __all__ = [
69
79
  "LangchainAgentEventType",
70
80
  "LangGraphToLangchainAgentEventAdapter",
71
81
  "create_langgraph_event_adapter",
82
+ "drain_oob_events",
83
+ "ensure_oob_event_sink",
84
+ "get_oob_event_sink",
85
+ "install_oob_event_sink",
86
+ "reset_oob_event_sink",
87
+ "teardown_oob_event_sink",
72
88
  "RecoveryAction",
73
89
  "RecoveryActionResolver",
74
90
  "RecoveryPolicy",
@@ -22,6 +22,16 @@ from .factory import (
22
22
  ILangGraphEventAdapter,
23
23
  create_langgraph_event_adapter,
24
24
  )
25
+ from .oob_event_sink import (
26
+ OOB_EVENT_QUEUE_CAP,
27
+ OobEventSink,
28
+ drain_oob_events,
29
+ ensure_oob_event_sink,
30
+ get_oob_event_sink,
31
+ install_oob_event_sink,
32
+ reset_oob_event_sink,
33
+ teardown_oob_event_sink,
34
+ )
25
35
 
26
36
  __all__ = [
27
37
  "LangchainAgentEventType",
@@ -40,4 +50,12 @@ __all__ = [
40
50
  "enrich_run_result",
41
51
  "ILangGraphEventAdapter",
42
52
  "create_langgraph_event_adapter",
53
+ "OOB_EVENT_QUEUE_CAP",
54
+ "OobEventSink",
55
+ "drain_oob_events",
56
+ "ensure_oob_event_sink",
57
+ "get_oob_event_sink",
58
+ "install_oob_event_sink",
59
+ "reset_oob_event_sink",
60
+ "teardown_oob_event_sink",
43
61
  ]
@@ -139,6 +139,8 @@ class LangchainAgentEventType(Enum):
139
139
  TASK_NOTIFICATION_ENQUEUED = "task-notification-enqueued"
140
140
  TASK_NOTIFICATION_CONSUMED = "task-notification-consumed"
141
141
  TASK_TERMINATED = "task-terminated"
142
+ # D-EVT-5:OOB 后台终态书档(对标 CC system/task_notification)
143
+ TASK_NOTIFICATION = "task-notification"
142
144
 
143
145
 
144
146
  @dataclass
@@ -1249,6 +1251,22 @@ class AgentEventProjector:
1249
1251
  tool_name=name,
1250
1252
  session_id=str(child_session_id) if child_session_id else None,
1251
1253
  )
1254
+ # D-EVT-5′:图内 SUBAGENT_END 覆盖时登记;若 payload 含 task_id 则抑制同 id OOB
1255
+ end_task_id: str | None = None
1256
+ if isinstance(output, dict):
1257
+ raw_tid = output.get("task_id")
1258
+ if not isinstance(raw_tid, str):
1259
+ artifact = output.get("artifact")
1260
+ if isinstance(artifact, dict):
1261
+ raw_tid = artifact.get("task_id")
1262
+ if isinstance(raw_tid, str) and raw_tid.strip():
1263
+ end_task_id = raw_tid.strip()
1264
+ if end_task_id:
1265
+ from langchain_agentx.observability.events.oob_event_sink import (
1266
+ get_oob_event_sink,
1267
+ )
1268
+
1269
+ get_oob_event_sink().note_terminal_projected(end_task_id)
1252
1270
  self._on_subagent_end_boundary()
1253
1271
 
1254
1272
  self.state.current_tool = None
@@ -11,6 +11,7 @@ finish_event_payload_composer.py — finish 事件 data 组装协作者
11
11
  当前裁剪范围:
12
12
  - 不发射事件、不读 LangGraph raw event
13
13
  - 不处理 SubAgent 终态;model_retry 进度见 retry_progress.py(Phase 6)
14
+ - INTERRUPT 文案仅经 display_interrupt_text 投影(D-EVT-4),不入 messages
14
15
  """
15
16
 
16
17
  from __future__ import annotations
@@ -22,8 +23,11 @@ from langchain_core.messages import AIMessage
22
23
 
23
24
  from langchain_agentx.loop.exit.reason_codes import (
24
25
  ERROR_TERMINAL_REASONS,
26
+ TERMINAL_REASON_ABORTED_STREAMING,
27
+ TERMINAL_REASON_ABORTED_TOOLS,
25
28
  TERMINAL_REASON_COMPLETED,
26
29
  TERMINAL_REASON_ERROR,
30
+ TERMINAL_REASON_HOOK_STOPPED,
27
31
  TERMINAL_REASON_MAX_TOKENS,
28
32
  TRANSITION_API_ERROR_TERMINAL,
29
33
  TRANSITION_CONTEXT_WINDOW_RECOVERY_EXHAUSTED,
@@ -32,6 +36,7 @@ from langchain_agentx.loop.exit.reason_codes import (
32
36
  )
33
37
  from langchain_agentx.loop.exit.terminal import read_terminal_reason
34
38
  from langchain_agentx.loop.exit.withheld_error import resolve_overflow_kind
39
+ from langchain_agentx.loop.run_context import get_run_context
35
40
 
36
41
  _RECOVERY_EXHAUSTED_TRANSITIONS = frozenset(
37
42
  {
@@ -41,6 +46,17 @@ _RECOVERY_EXHAUSTED_TRANSITIONS = frozenset(
41
46
  }
42
47
  )
43
48
 
49
+ # D-EVT-2/4:用户取消 display 文案(对齐 CC INTERRUPT;禁止注入 messages)
50
+ DEFAULT_DISPLAY_INTERRUPT_TEXT = "[Request interrupted by user]"
51
+ ERROR_KIND_USER_CANCELLED = "user_cancelled"
52
+ ERROR_KIND_HOOK_STOPPED = "hook_stopped"
53
+ _USER_CANCELLED_TERMINAL_REASONS = frozenset(
54
+ {
55
+ TERMINAL_REASON_ABORTED_STREAMING,
56
+ TERMINAL_REASON_ABORTED_TOOLS,
57
+ }
58
+ )
59
+
44
60
  _SENSITIVE_PATTERNS: tuple[tuple[re.Pattern[str], str], ...] = (
45
61
  (re.compile(r"sk-[a-zA-Z0-9_-]{8,}", re.I), "<redacted_api_key>"),
46
62
  (re.compile(r"bearer\s+\S+", re.I), "Bearer <redacted>"),
@@ -157,7 +173,7 @@ class FinishEventPayloadComposer:
157
173
  messages=messages,
158
174
  )
159
175
 
160
- return {
176
+ payload: dict[str, Any] = {
161
177
  "graph_name": graph_name,
162
178
  "answer": answer,
163
179
  "terminal_reason": terminal_reason,
@@ -168,6 +184,10 @@ class FinishEventPayloadComposer:
168
184
  "error_kind": error_kind,
169
185
  "recovery_exhausted": recovery_exhausted,
170
186
  }
187
+ if error_kind == ERROR_KIND_USER_CANCELLED:
188
+ payload["display_interrupt_text"] = DEFAULT_DISPLAY_INTERRUPT_TEXT
189
+ payload["cancel_source"] = self._resolve_cancel_source(snap)
190
+ return payload
171
191
 
172
192
  @staticmethod
173
193
  def _resolve_terminal_reason(
@@ -265,6 +285,25 @@ class FinishEventPayloadComposer:
265
285
  if terminal_reason == TERMINAL_REASON_COMPLETED:
266
286
  return "unknown"
267
287
 
288
+ if terminal_reason in _USER_CANCELLED_TERMINAL_REASONS:
289
+ return ERROR_KIND_USER_CANCELLED
290
+
291
+ if terminal_reason == TERMINAL_REASON_HOOK_STOPPED:
292
+ return ERROR_KIND_HOOK_STOPPED
293
+
294
+ return "unknown"
295
+
296
+ @staticmethod
297
+ def _resolve_cancel_source(snap: dict[str, Any]) -> str:
298
+ """D-EVT-6:宿主写入优先;缺省 unknown;禁止猜测反推。"""
299
+ raw = snap.get("cancel_source")
300
+ if raw is not None and str(raw):
301
+ return str(raw)
302
+ ctx = get_run_context()
303
+ if ctx is not None:
304
+ source = getattr(ctx, "cancel_source", None)
305
+ if source is not None and str(source):
306
+ return str(source)
268
307
  return "unknown"
269
308
 
270
309
  @staticmethod
@@ -323,6 +362,9 @@ class FinishEventPayloadComposer:
323
362
 
324
363
 
325
364
  __all__ = [
365
+ "DEFAULT_DISPLAY_INTERRUPT_TEXT",
366
+ "ERROR_KIND_HOOK_STOPPED",
367
+ "ERROR_KIND_USER_CANCELLED",
326
368
  "FinishEventPayloadComposer",
327
369
  "sanitize_finish_error_message",
328
370
  ]
@@ -20,8 +20,15 @@ from dataclasses import dataclass
20
20
  from enum import Enum
21
21
  from typing import Any, Literal
22
22
 
23
+ from langchain_agentx.loop.exit.reason_codes import (
24
+ TERMINAL_REASON_ABORTED_STREAMING,
25
+ TERMINAL_REASON_ABORTED_TOOLS,
26
+ TERMINAL_REASON_HOOK_STOPPED,
27
+ )
23
28
  from langchain_agentx.loop.exit.terminal import read_terminal_reason
24
29
  from langchain_agentx.observability.events.finish_event_payload_composer import (
30
+ ERROR_KIND_HOOK_STOPPED,
31
+ ERROR_KIND_USER_CANCELLED,
25
32
  FinishEventPayloadComposer,
26
33
  )
27
34
 
@@ -53,6 +60,27 @@ FINISH_OUTCOME_KEYS = frozenset(
53
60
 
54
61
  RecoveryPolicyMode = Literal["interactive", "auto"]
55
62
 
63
+ _CANCEL_ERROR_KINDS = frozenset(
64
+ {
65
+ ERROR_KIND_USER_CANCELLED,
66
+ ERROR_KIND_HOOK_STOPPED,
67
+ }
68
+ )
69
+ _CANCEL_TERMINAL_REASONS = frozenset(
70
+ {
71
+ TERMINAL_REASON_ABORTED_STREAMING,
72
+ TERMINAL_REASON_ABORTED_TOOLS,
73
+ TERMINAL_REASON_HOOK_STOPPED,
74
+ }
75
+ )
76
+
77
+
78
+ def _is_cancel_outcome(outcome: "FinishOutcome") -> bool:
79
+ """用户取消 / hook 终局:禁止建议 compact(D-EVT-2 / CLI 投影)。"""
80
+ if outcome.error_kind in _CANCEL_ERROR_KINDS:
81
+ return True
82
+ return outcome.terminal_reason in _CANCEL_TERMINAL_REASONS
83
+
56
84
 
57
85
  @dataclass(frozen=True)
58
86
  class RecoveryPolicy:
@@ -149,6 +177,7 @@ class FinishOutcomeParser:
149
177
  snap = dict(state or {})
150
178
  terminal = snap.get("terminal") if isinstance(snap.get("terminal"), dict) else None
151
179
  if terminal is not None and "is_error" in terminal:
180
+ # from_terminal 已对缺失 error_kind 做 composer 对齐补推(D-EVT-2)
152
181
  return self.from_terminal(terminal, answer=answer)
153
182
  msgs = messages if messages is not None else snap.get("messages")
154
183
  if not isinstance(msgs, list):
@@ -178,11 +207,23 @@ class FinishOutcomeParser:
178
207
  *,
179
208
  answer: str = "",
180
209
  ) -> FinishOutcome:
210
+ terminal_reason = _optional_str(read_terminal_reason(terminal))
211
+ is_error = bool(terminal.get("is_error"))
212
+ error_kind = _optional_str(terminal.get("error_kind"))
213
+ if is_error and error_kind is None:
214
+ error_kind = FinishEventPayloadComposer._infer_error_kind(
215
+ terminal_reason=terminal_reason,
216
+ is_error=True,
217
+ withheld_error=None,
218
+ transition_reason=None,
219
+ terminal=terminal,
220
+ messages=None,
221
+ )
181
222
  return FinishOutcome(
182
- terminal_reason=_optional_str(read_terminal_reason(terminal)),
183
- is_error=bool(terminal.get("is_error")),
223
+ terminal_reason=terminal_reason,
224
+ is_error=is_error,
184
225
  recoverable=bool(terminal.get("recoverable")),
185
- error_kind=_optional_str(terminal.get("error_kind")),
226
+ error_kind=error_kind,
186
227
  recovery_exhausted=bool(terminal.get("recovery_exhausted")),
187
228
  errors=tuple(str(e) for e in (terminal.get("errors") or []) if e),
188
229
  answer=answer,
@@ -220,6 +261,8 @@ class RecoveryActionResolver:
220
261
  ) -> RecoveryAction:
221
262
  if not outcome.is_error:
222
263
  return RecoveryAction.NONE
264
+ if _is_cancel_outcome(outcome):
265
+ return RecoveryAction.FAIL
223
266
  if not outcome.recoverable:
224
267
  return RecoveryAction.FAIL
225
268
 
@@ -242,12 +285,13 @@ class RecoveryActionResolver:
242
285
 
243
286
  @staticmethod
244
287
  def blocks_auto_compact(outcome: FinishOutcome) -> bool:
245
- """Workflow 门禁:recovery_exhausted 后禁止再次 auto-compact(Phase 5.5)。"""
288
+ """Workflow 门禁:cancel / recovery_exhausted 后禁止再次 auto-compact"""
246
289
  if not outcome.is_error:
247
290
  return False
291
+ if _is_cancel_outcome(outcome):
292
+ return True
248
293
  return outcome.recovery_exhausted
249
294
 
250
-
251
295
  def enrich_run_result(
252
296
  result: dict[str, Any],
253
297
  *,