langchain-agentx-python 1.3.6__tar.gz → 1.3.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 (729) hide show
  1. {langchain-agentx-python-1.3.6/langchain_agentx_python.egg-info → langchain-agentx-python-1.3.8}/PKG-INFO +1 -1
  2. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/__init__.py +1 -1
  3. langchain-agentx-python-1.3.8/langchain_agentx/observability/events/workflow_container_projector.py +649 -0
  4. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/workflow/__init__.py +52 -0
  5. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/workflow/base.py +63 -0
  6. langchain-agentx-python-1.3.8/langchain_agentx/workflow/catalog_registry.py +61 -0
  7. langchain-agentx-python-1.3.8/langchain_agentx/workflow/display_enricher.py +201 -0
  8. langchain-agentx-python-1.3.8/langchain_agentx/workflow/display_resolver.py +293 -0
  9. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/workflow/event_adapter/adapter.py +83 -0
  10. langchain-agentx-python-1.3.8/langchain_agentx/workflow/event_adapter/handlers/display_support.py +61 -0
  11. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/workflow/event_adapter/handlers/parallel_handler.py +112 -21
  12. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/workflow/event_adapter/handlers/route_handler.py +68 -15
  13. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/workflow/event_adapter/handlers/stage_handler.py +78 -17
  14. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/workflow/event_adapter/types.py +11 -2
  15. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/workflow/patterns/__init__.py +6 -1
  16. langchain-agentx-python-1.3.8/langchain_agentx/workflow/patterns/chaining.py +164 -0
  17. langchain-agentx-python-1.3.8/langchain_agentx/workflow/patterns/parallelization.py +169 -0
  18. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/workflow/patterns/routing.py +71 -35
  19. langchain-agentx-python-1.3.8/langchain_agentx/workflow/patterns/specs.py +69 -0
  20. langchain-agentx-python-1.3.8/langchain_agentx/workflow/ui_catalog.py +244 -0
  21. langchain-agentx-python-1.3.8/langchain_agentx/workflow/validation.py +155 -0
  22. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8/langchain_agentx_python.egg-info}/PKG-INFO +1 -1
  23. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx_python.egg-info/SOURCES.txt +8 -0
  24. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/pyproject.toml +1 -1
  25. langchain-agentx-python-1.3.6/langchain_agentx/workflow/patterns/chaining.py +0 -134
  26. langchain-agentx-python-1.3.6/langchain_agentx/workflow/patterns/parallelization.py +0 -153
  27. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/LICENSE +0 -0
  28. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/README.md +0 -0
  29. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/command/__init__.py +0 -0
  30. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/command/allowed_tools.py +0 -0
  31. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/command/builtin/__init__.py +0 -0
  32. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/command/builtin/clear.py +0 -0
  33. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/command/builtin/commit.py +0 -0
  34. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/command/builtin/commit_push_pr.py +0 -0
  35. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/command/builtin/compact.py +0 -0
  36. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/command/builtin/git_prompt_common.py +0 -0
  37. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/command/builtin/memory.py +0 -0
  38. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/command/builtin/reload_plugins.py +0 -0
  39. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/command/context.py +0 -0
  40. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/command/dispatcher.py +0 -0
  41. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/command/fork_executor.py +0 -0
  42. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/command/git_settings.py +0 -0
  43. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/command/prompt_shell.py +0 -0
  44. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/command/registry.py +0 -0
  45. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/command/result.py +0 -0
  46. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/command/types.py +0 -0
  47. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/config/__init__.py +0 -0
  48. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/config/model_profiles.yaml +0 -0
  49. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/config/model_profiles.yaml.example +0 -0
  50. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/health/__init__.py +0 -0
  51. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/health/checks.py +0 -0
  52. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/health/models.py +0 -0
  53. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/health/preflight.py +0 -0
  54. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/__init__.py +0 -0
  55. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/benchmark_frozen_config.py +0 -0
  56. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/config/__init__.py +0 -0
  57. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/config/agent_config.py +0 -0
  58. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/config/interaction_profile.py +0 -0
  59. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/config/loop_config.py +0 -0
  60. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/config/loop_runtime_overlay.py +0 -0
  61. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/config/model_context_resolver.py +0 -0
  62. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/config/runtime_settings.py +0 -0
  63. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/config/thinking_config.py +0 -0
  64. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/config/token_estimator.py +0 -0
  65. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/config/tool_execution_engine_resolver.py +0 -0
  66. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/config/ui_display_context.py +0 -0
  67. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/context/__init__.py +0 -0
  68. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/context/blocking_guard.py +0 -0
  69. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/context/compaction_service.py +0 -0
  70. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/context/message_utils.py +0 -0
  71. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/context/pipeline.py +0 -0
  72. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/context/query_source.py +0 -0
  73. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/context/recovery_mode.py +0 -0
  74. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/context/settings.py +0 -0
  75. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/context/stages/__init__.py +0 -0
  76. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/context/stages/autocompact.py +0 -0
  77. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/context/stages/base.py +0 -0
  78. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/context/stages/collapse.py +0 -0
  79. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/context/stages/microcompact.py +0 -0
  80. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/context/stages/noop.py +0 -0
  81. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/context/stages/snip.py +0 -0
  82. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/context/stages/tool_result_budget.py +0 -0
  83. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/context/types.py +0 -0
  84. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/exit/__init__.py +0 -0
  85. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/exit/exit_logic.py +0 -0
  86. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/exit/query_source.py +0 -0
  87. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/exit/reason_codes.py +0 -0
  88. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/exit/resolution.py +0 -0
  89. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/exit/terminal.py +0 -0
  90. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/exit/withheld_error.py +0 -0
  91. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/graph/__init__.py +0 -0
  92. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/graph/builtin_loop_control.py +0 -0
  93. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/graph/factory.py +0 -0
  94. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/graph/graph_edges.py +0 -0
  95. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/graph/reactive_compact_node.py +0 -0
  96. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/graph/runtime_tools_node.py +0 -0
  97. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/hook/__init__.py +0 -0
  98. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/hook/async_hook_runner.py +0 -0
  99. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/hook/config.py +0 -0
  100. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/hook/engine.py +0 -0
  101. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/hook/executors/__init__.py +0 -0
  102. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/hook/executors/agent.py +0 -0
  103. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/hook/executors/command.py +0 -0
  104. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/hook/executors/http.py +0 -0
  105. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/hook/executors/prompt.py +0 -0
  106. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/hook/graph_wiring.py +0 -0
  107. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/hook/hook_projection.py +0 -0
  108. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/hook/progress_payload.py +0 -0
  109. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/hook/registry.py +0 -0
  110. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/hook/trust.py +0 -0
  111. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/hook/types.py +0 -0
  112. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/injection/__init__.py +0 -0
  113. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/injection/dedup.py +0 -0
  114. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/loop_abort.py +0 -0
  115. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/message_contract.py +0 -0
  116. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/messages/__init__.py +0 -0
  117. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/messages/contract.py +0 -0
  118. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/messages/engine_protocol.py +0 -0
  119. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/messages/langgraph_adapter.py +0 -0
  120. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/messages/normalizer.py +0 -0
  121. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/messages/transcript_codec.py +0 -0
  122. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/messages/types.py +0 -0
  123. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/messages/validate.py +0 -0
  124. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/model/__init__.py +0 -0
  125. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/model/model_node.py +0 -0
  126. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/model/model_nodes.py +0 -0
  127. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/model/orphan_tool_results.py +0 -0
  128. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/model/retrier.py +0 -0
  129. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/model/retry_bridge.py +0 -0
  130. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/model/retry_events.py +0 -0
  131. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/model/retry_policy.py +0 -0
  132. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/model/retry_progress.py +0 -0
  133. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/model/schema_and_format.py +0 -0
  134. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/model/tool_and_model_binding.py +0 -0
  135. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/model/tool_call_degradation_corrector.py +0 -0
  136. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/model/tool_transcript_guard.py +0 -0
  137. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/prompt/__init__.py +0 -0
  138. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/prompt/builder.py +0 -0
  139. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/prompt/builtin.py +0 -0
  140. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/prompt/compact.py +0 -0
  141. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/prompt/sections.py +0 -0
  142. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/prompt/session_context.py +0 -0
  143. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/prompt/session_guidance.py +0 -0
  144. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/prompt/static_system_prompt.py +0 -0
  145. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/prompt/tool_aware_sections.py +0 -0
  146. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/prompt/using_your_tools.py +0 -0
  147. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/runtime/__init__.py +0 -0
  148. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/runtime/context.py +0 -0
  149. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/runtime/context_factory.py +0 -0
  150. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/runtime/subagent_execution_paths.py +0 -0
  151. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/stream/graph_driver.py +0 -0
  152. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/stream/helpers.py +0 -0
  153. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/stream/loop_driver.py +0 -0
  154. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/stream/result.py +0 -0
  155. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/stream/synthetic_events.py +0 -0
  156. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/stream/transcript_gate.py +0 -0
  157. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/subagent/__init__.py +0 -0
  158. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/subagent/active_run_registry.py +0 -0
  159. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/subagent/async_runner.py +0 -0
  160. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/subagent/cache_safe_params.py +0 -0
  161. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/subagent/context.py +0 -0
  162. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/subagent/display_projector.py +0 -0
  163. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/subagent/fork_boilerplate.py +0 -0
  164. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/subagent/fork_ports.py +0 -0
  165. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/subagent/fork_worktree_notice.py +0 -0
  166. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/subagent/forked_runner.py +0 -0
  167. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/subagent/graph.py +0 -0
  168. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/subagent/orchestrator.py +0 -0
  169. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/subagent/progress.py +0 -0
  170. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/subagent/prompt.py +0 -0
  171. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/subagent/reasoning_extractor.py +0 -0
  172. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/subagent/runner.py +0 -0
  173. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/subagent/subagent_termination_classifier.py +0 -0
  174. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/loop/subagent/transcript.py +0 -0
  175. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/memory/__init__.py +0 -0
  176. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/memory/instruction/__init__.py +0 -0
  177. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/memory/instruction/exclusion.py +0 -0
  178. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/memory/instruction/external_includes.py +0 -0
  179. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/memory/instruction/loader.py +0 -0
  180. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/memory/instruction/read_state_seeder.py +0 -0
  181. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/memory/instruction/resolver.py +0 -0
  182. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/memory/instruction/runtime.py +0 -0
  183. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/memory/instruction/sections.py +0 -0
  184. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/memory/instruction/types.py +0 -0
  185. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/memory/instruction/worktree_skip.py +0 -0
  186. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/memory/memdir/__init__.py +0 -0
  187. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/memory/memdir/_deprecated/agent_memory/agent_memory.py +0 -0
  188. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/memory/memdir/age.py +0 -0
  189. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/memory/memdir/attachments.py +0 -0
  190. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/memory/memdir/cursor_store.py +0 -0
  191. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/memory/memdir/entrypoint_context.py +0 -0
  192. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/memory/memdir/extractor.py +0 -0
  193. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/memory/memdir/fork_concurrency.py +0 -0
  194. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/memory/memdir/gate.py +0 -0
  195. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/memory/memdir/loader.py +0 -0
  196. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/memory/memdir/memory_saved.py +0 -0
  197. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/memory/memdir/metrics.py +0 -0
  198. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/memory/memdir/paths.py +0 -0
  199. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/memory/memdir/prefetch.py +0 -0
  200. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/memory/memdir/prompts/__init__.py +0 -0
  201. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/memory/memdir/prompts/_shared.py +0 -0
  202. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/memory/memdir/prompts/select_memories.py +0 -0
  203. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/memory/memdir/recall.py +0 -0
  204. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/memory/memdir/recall_service.py +0 -0
  205. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/memory/memdir/runtime.py +0 -0
  206. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/memory/memdir/scan.py +0 -0
  207. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/memory/memdir/side_query.py +0 -0
  208. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/memory/memdir/tool_scope.py +0 -0
  209. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/memory/memdir/tunables.py +0 -0
  210. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/memory/memdir/types.py +0 -0
  211. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/memory/memdir/written_paths.py +0 -0
  212. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/memory/migrate_layout.py +0 -0
  213. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/memory/session/__init__.py +0 -0
  214. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/memory/session/compact_bridge.py +0 -0
  215. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/memory/session/extractor.py +0 -0
  216. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/memory/session/prompts.py +0 -0
  217. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/memory/session/session_memory.py +0 -0
  218. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/memory/session/tool_scope.py +0 -0
  219. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/observability/__init__.py +0 -0
  220. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/observability/evaluation/__init__.py +0 -0
  221. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/observability/evaluation/checkers/__init__.py +0 -0
  222. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/observability/evaluation/checkers/base.py +0 -0
  223. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/observability/evaluation/checkers/compaction.py +0 -0
  224. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/observability/evaluation/checkers/degradation.py +0 -0
  225. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/observability/evaluation/checkers/exit_quality.py +0 -0
  226. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/observability/evaluation/checkers/session_memory.py +0 -0
  227. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/observability/evaluation/checkers/tool_behavior.py +0 -0
  228. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/observability/evaluation/retention_scheduler.py +0 -0
  229. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/observability/evaluation/service.py +0 -0
  230. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/observability/evaluation/state.py +0 -0
  231. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/observability/evaluation/store.py +0 -0
  232. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/observability/events/__init__.py +0 -0
  233. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/observability/events/agent_event_projector.py +0 -0
  234. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/observability/events/factory.py +0 -0
  235. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/observability/events/finish_event_payload_composer.py +0 -0
  236. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/observability/events/finish_outcome.py +0 -0
  237. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/observability/events/langchain_agentx_event_adapter.py +0 -0
  238. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/observability/events/subagent_event_mapper.py +0 -0
  239. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/observability/events/tool_call_id_resolver.py +0 -0
  240. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/observability/events/tool_outcome_resolver.py +0 -0
  241. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/observability/events/workflow_aware_event_adapter.py +0 -0
  242. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/observability/events/workflow_event_mapper.py +0 -0
  243. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/observability/logging/__init__.py +0 -0
  244. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/observability/logging/debug_burst.py +0 -0
  245. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/observability/logging/logging_config.py +0 -0
  246. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/observability/logging/logging_contract.py +0 -0
  247. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/observability/replay/__init__.py +0 -0
  248. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/observability/replay/cli.py +0 -0
  249. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/observability/replay/service.py +0 -0
  250. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/observability/replay/store.py +0 -0
  251. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/observability/replay/ui.py +0 -0
  252. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/observability/trace/__init__.py +0 -0
  253. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/observability/trace/collector.py +0 -0
  254. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/observability/trace/event_emitter.py +0 -0
  255. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/observability/trace/hook_event_emitter.py +0 -0
  256. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/observability/trace/models.py +0 -0
  257. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/observability/trace/sqlite_store.py +0 -0
  258. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/observability/trace/trace_callback.py +0 -0
  259. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/observability/trace/trace_lifecycle_collector.py +0 -0
  260. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/plugin/__init__.py +0 -0
  261. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/plugin/builtin.py +0 -0
  262. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/plugin/config.py +0 -0
  263. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/plugin/loader.py +0 -0
  264. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/plugin/manifest.py +0 -0
  265. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/plugin/registries.py +0 -0
  266. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/plugin/types.py +0 -0
  267. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/provider/__init__.py +0 -0
  268. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/provider/anthropic.py +0 -0
  269. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/provider/compatible_chat_openai.py +0 -0
  270. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/provider/env.py +0 -0
  271. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/provider/model_profile.py +0 -0
  272. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/provider/openai.py +0 -0
  273. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/provider/semantics/__init__.py +0 -0
  274. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/provider/semantics/answer_assembler.py +0 -0
  275. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/provider/semantics/contracts.py +0 -0
  276. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/provider/semantics/families/__init__.py +0 -0
  277. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/provider/semantics/families/anthropic.py +0 -0
  278. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/provider/semantics/families/anthropic_codec.py +0 -0
  279. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/provider/semantics/families/anthropic_finish_reason.py +0 -0
  280. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/provider/semantics/families/anthropic_interpreter.py +0 -0
  281. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/provider/semantics/families/anthropic_normalizer.py +0 -0
  282. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/provider/semantics/families/compatible_openai.py +0 -0
  283. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/provider/semantics/families/compatible_openai_codec.py +0 -0
  284. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/provider/semantics/families/compatible_openai_finish_reason.py +0 -0
  285. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/provider/semantics/families/compatible_openai_interpreter.py +0 -0
  286. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/provider/semantics/families/compatible_openai_normalizer.py +0 -0
  287. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/provider/semantics/families/openai.py +0 -0
  288. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/provider/semantics/families/openai_codec.py +0 -0
  289. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/provider/semantics/families/openai_finish_reason.py +0 -0
  290. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/provider/semantics/families/openai_interpreter.py +0 -0
  291. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/provider/semantics/families/openai_normalizer.py +0 -0
  292. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/provider/semantics/finish_reason_normalizer.py +0 -0
  293. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/provider/semantics/message_normalizer.py +0 -0
  294. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/provider/semantics/profile.py +0 -0
  295. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/provider/semantics/registry.py +0 -0
  296. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/provider/semantics/request_codec.py +0 -0
  297. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/provider/semantics/runtime.py +0 -0
  298. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/provider/semantics/stream_normalizer.py +0 -0
  299. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/provider/semantics/thinking_capability.py +0 -0
  300. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/provider/semantics/tool_call_interpreter.py +0 -0
  301. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/provider/semantics/turn_accumulator.py +0 -0
  302. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/session/__init__.py +0 -0
  303. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/session/agent_session.py +0 -0
  304. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/session/conversation_factory.py +0 -0
  305. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/session/conversation_recovery.py +0 -0
  306. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/session/conversation_session.py +0 -0
  307. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/session/factory.py +0 -0
  308. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/session/plan_mode.py +0 -0
  309. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/session/plan_mode_attachments.py +0 -0
  310. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/session/protocol.py +0 -0
  311. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/session/recovery.py +0 -0
  312. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/task_runtime/__init__.py +0 -0
  313. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/task_runtime/core/__init__.py +0 -0
  314. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/task_runtime/core/ids.py +0 -0
  315. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/task_runtime/core/interfaces.py +0 -0
  316. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/task_runtime/core/notification_priority.py +0 -0
  317. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/task_runtime/core/types.py +0 -0
  318. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/task_runtime/integrations/__init__.py +0 -0
  319. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/task_runtime/integrations/loop_adapter.py +0 -0
  320. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/task_runtime/integrations/loop_integration.py +0 -0
  321. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/task_runtime/integrations/prefetch_providers.py +0 -0
  322. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/task_runtime/integrations/provider_factory.py +0 -0
  323. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/task_runtime/integrations/queued_command_provider.py +0 -0
  324. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/task_runtime/integrations/sqlite_queued_command_provider.py +0 -0
  325. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/task_runtime/integrations/tool_use_summary_provider.py +0 -0
  326. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/task_runtime/orchestrator/__init__.py +0 -0
  327. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/task_runtime/orchestrator/runtime.py +0 -0
  328. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/task_runtime/output/__init__.py +0 -0
  329. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/task_runtime/output/sink.py +0 -0
  330. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/task_runtime/policy/__init__.py +0 -0
  331. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/task_runtime/policy/withhold_visibility.py +0 -0
  332. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/task_runtime/queue/__init__.py +0 -0
  333. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/task_runtime/queue/in_memory.py +0 -0
  334. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/task_runtime/skill_prefetch/__init__.py +0 -0
  335. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/task_runtime/skill_prefetch/attachments.py +0 -0
  336. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/task_runtime/skill_prefetch/models.py +0 -0
  337. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/task_runtime/skill_prefetch/provider.py +0 -0
  338. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/task_runtime/store/__init__.py +0 -0
  339. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/task_runtime/store/file_store.py +0 -0
  340. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/task_runtime/store/in_memory.py +0 -0
  341. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/task_runtime/tasklist/__init__.py +0 -0
  342. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/task_runtime/tasklist/config_home_paths.py +0 -0
  343. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/task_runtime/tasklist/high_water_mark.py +0 -0
  344. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/task_runtime/tasklist/lock.py +0 -0
  345. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/task_runtime/tasklist/models.py +0 -0
  346. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/task_runtime/tasklist/notifier.py +0 -0
  347. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/task_runtime/tasklist/path_resolver.py +0 -0
  348. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/task_runtime/tasklist/paths.py +0 -0
  349. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/task_runtime/tasklist/reader.py +0 -0
  350. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/task_runtime/tasklist/store.py +0 -0
  351. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/task_runtime/tasks/__init__.py +0 -0
  352. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/task_runtime/tasks/ai_analysis/__init__.py +0 -0
  353. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/task_runtime/tasks/ai_analysis/base.py +0 -0
  354. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/task_runtime/tasks/ai_analysis/evaluation.py +0 -0
  355. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/task_runtime/tasks/ai_analysis/registry.py +0 -0
  356. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/task_runtime/tasks/ai_analysis/scheduler.py +0 -0
  357. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/task_runtime/tasks/base/__init__.py +0 -0
  358. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/task_runtime/tasks/base/contracts.py +0 -0
  359. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/task_runtime/tasks/custom/__init__.py +0 -0
  360. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/task_runtime/tasks/custom/executor.py +0 -0
  361. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/task_runtime/tasks/custom/notification.py +0 -0
  362. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/task_runtime/tasks/custom/semantics.py +0 -0
  363. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/task_runtime/tasks/custom/spec.py +0 -0
  364. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/task_runtime/tasks/dream_task/__init__.py +0 -0
  365. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/task_runtime/tasks/dream_task/executor.py +0 -0
  366. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/task_runtime/tasks/dream_task/notification.py +0 -0
  367. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/task_runtime/tasks/dream_task/semantics.py +0 -0
  368. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/task_runtime/tasks/dream_task/spec.py +0 -0
  369. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/task_runtime/tasks/dream_task/state.py +0 -0
  370. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/task_runtime/tasks/in_process_teammate/__init__.py +0 -0
  371. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/task_runtime/tasks/in_process_teammate/executor.py +0 -0
  372. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/task_runtime/tasks/in_process_teammate/notification.py +0 -0
  373. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/task_runtime/tasks/in_process_teammate/semantics.py +0 -0
  374. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/task_runtime/tasks/in_process_teammate/spec.py +0 -0
  375. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/task_runtime/tasks/local_agent/__init__.py +0 -0
  376. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/task_runtime/tasks/local_agent/executor.py +0 -0
  377. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/task_runtime/tasks/local_agent/notification.py +0 -0
  378. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/task_runtime/tasks/local_agent/runner.py +0 -0
  379. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/task_runtime/tasks/local_agent/semantics.py +0 -0
  380. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/task_runtime/tasks/local_agent/spec.py +0 -0
  381. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/task_runtime/tasks/local_bash/__init__.py +0 -0
  382. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/task_runtime/tasks/local_bash/executor.py +0 -0
  383. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/task_runtime/tasks/local_bash/notification.py +0 -0
  384. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/task_runtime/tasks/local_bash/semantics.py +0 -0
  385. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/task_runtime/tasks/local_bash/spec.py +0 -0
  386. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/task_runtime/tasks/remote_agent/__init__.py +0 -0
  387. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/task_runtime/tasks/remote_agent/backend.py +0 -0
  388. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/task_runtime/tasks/remote_agent/executor.py +0 -0
  389. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/task_runtime/tasks/remote_agent/notification.py +0 -0
  390. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/task_runtime/tasks/remote_agent/semantics.py +0 -0
  391. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/task_runtime/tasks/remote_agent/spec.py +0 -0
  392. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/task_runtime/tasks/trace_cleanup/__init__.py +0 -0
  393. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/task_runtime/tasks/trace_cleanup/bootstrap.py +0 -0
  394. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/task_runtime/tasks/trace_cleanup/executor.py +0 -0
  395. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/task_runtime/tasks/trace_cleanup/scheduler.py +0 -0
  396. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/__init__.py +0 -0
  397. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/accept_edits_fast_path.py +0 -0
  398. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/adapter.py +0 -0
  399. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/agent_home_bypass.py +0 -0
  400. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/auto_mode/__init__.py +0 -0
  401. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/auto_mode/allowlist.py +0 -0
  402. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/auto_mode/classifier/__init__.py +0 -0
  403. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/auto_mode/classifier/classifier.py +0 -0
  404. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/auto_mode/classifier/parser.py +0 -0
  405. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/auto_mode/classifier/prompt.py +0 -0
  406. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/auto_mode/classifier/schema.py +0 -0
  407. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/auto_mode/classifier/transcript.py +0 -0
  408. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/auto_mode/config.py +0 -0
  409. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/auto_mode/config_update.py +0 -0
  410. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/auto_mode/decision.py +0 -0
  411. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/auto_mode/events.py +0 -0
  412. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/auto_mode/factory.py +0 -0
  413. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/auto_mode/feedback.py +0 -0
  414. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/auto_mode/hook.py +0 -0
  415. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/auto_mode/rule_stripping.py +0 -0
  416. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/auto_mode/state.py +0 -0
  417. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/base.py +0 -0
  418. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/capabilities.py +0 -0
  419. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/denial_tracking.py +0 -0
  420. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/denial_tracking_bridge.py +0 -0
  421. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/errors.py +0 -0
  422. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/execution/__init__.py +0 -0
  423. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/execution/appliers/__init__.py +0 -0
  424. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/execution/appliers/auto_approved.py +0 -0
  425. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/execution/appliers/effort_override.py +0 -0
  426. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/execution/appliers/model_override.py +0 -0
  427. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/execution/appliers/set_cwd.py +0 -0
  428. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/execution/appliers/stubs.py +0 -0
  429. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/execution/callback_bridge.py +0 -0
  430. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/execution/engine.py +0 -0
  431. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/execution/message_adapter.py +0 -0
  432. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/execution/models.py +0 -0
  433. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/execution/parity.py +0 -0
  434. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/execution/payload_validator.py +0 -0
  435. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/execution/planner.py +0 -0
  436. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/execution/policy.py +0 -0
  437. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/execution/side_effect_collector.py +0 -0
  438. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/execution/side_effect_merge.py +0 -0
  439. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/failure_event_emitter.py +0 -0
  440. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/identical_call_cache.py +0 -0
  441. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/inner_permission_chain.py +0 -0
  442. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/limits.py +0 -0
  443. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/loader.py +0 -0
  444. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/loop_loader.py +0 -0
  445. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/loop_runtime_context.py +0 -0
  446. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/messages.py +0 -0
  447. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/models.py +0 -0
  448. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/outer_permission_resolver.py +0 -0
  449. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/override.py +0 -0
  450. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/path_safety.py +0 -0
  451. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/permission_context.py +0 -0
  452. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/permission_decision.py +0 -0
  453. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/permission_orchestrator.py +0 -0
  454. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/permission_rule_matcher.py +0 -0
  455. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/permission_rules.py +0 -0
  456. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/permission_settings_loader.py +0 -0
  457. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/permission_settings_sync.py +0 -0
  458. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/permission_snapshot.py +0 -0
  459. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/pipeline.py +0 -0
  460. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/policy.py +0 -0
  461. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/policy_decorator.py +0 -0
  462. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/process_loader.py +0 -0
  463. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/progress/__init__.py +0 -0
  464. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/progress/event.py +0 -0
  465. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/progress/sampler.py +0 -0
  466. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/prompt/__init__.py +0 -0
  467. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/prompt/_abort.py +0 -0
  468. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/prompt/cli_interactive.py +0 -0
  469. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/prompt/handler.py +0 -0
  470. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/prompt/headless.py +0 -0
  471. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/prompt/legacy_resolver_adapter.py +0 -0
  472. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/prompt/messages.py +0 -0
  473. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/prompt/race.py +0 -0
  474. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/prompt/session_mode.py +0 -0
  475. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/prompt/types.py +0 -0
  476. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/prompt_context.py +0 -0
  477. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/read_ignore_patterns.py +0 -0
  478. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/read_permission.py +0 -0
  479. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/registry.py +0 -0
  480. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/resolvers/__init__.py +0 -0
  481. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/resolvers/agent_session.py +0 -0
  482. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/resolvers/background.py +0 -0
  483. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/resolvers/base.py +0 -0
  484. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/resolvers/conversation.py +0 -0
  485. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/resolvers/workflow.py +0 -0
  486. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/session_hints.py +0 -0
  487. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/session_store.py +0 -0
  488. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/shell_error.py +0 -0
  489. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/smoke_test_runtime.py +0 -0
  490. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/state_bridge.py +0 -0
  491. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/tool_message_status.py +0 -0
  492. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/tool_name_constants.py +0 -0
  493. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tool_runtime/tool_schema_cache.py +0 -0
  494. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/__init__.py +0 -0
  495. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/agent/__init__.py +0 -0
  496. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/agent/backend.py +0 -0
  497. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/agent/built_in/__init__.py +0 -0
  498. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/agent/built_in/agentx_guide.py +0 -0
  499. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/agent/built_in/explore.py +0 -0
  500. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/agent/built_in/general.py +0 -0
  501. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/agent/built_in/plan.py +0 -0
  502. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/agent/built_in/statusline_setup.py +0 -0
  503. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/agent/built_in/verification.py +0 -0
  504. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/agent/builtin_subagent_loader.py +0 -0
  505. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/agent/cwd_resolution.py +0 -0
  506. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/agent/limits.py +0 -0
  507. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/agent/loader.py +0 -0
  508. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/agent/memory_paths.py +0 -0
  509. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/agent/memory_prompt.py +0 -0
  510. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/agent/memory_snapshot.py +0 -0
  511. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/agent/models.py +0 -0
  512. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/agent/prompt.py +0 -0
  513. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/agent/prompt_scope.py +0 -0
  514. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/agent/registry/__init__.py +0 -0
  515. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/agent/registry/config.py +0 -0
  516. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/agent/registry/registry.py +0 -0
  517. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/agent/scope.py +0 -0
  518. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/agent/tool.py +0 -0
  519. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/ask_user_question/__init__.py +0 -0
  520. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/ask_user_question/constants.py +0 -0
  521. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/ask_user_question/html_preview.py +0 -0
  522. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/ask_user_question/models.py +0 -0
  523. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/ask_user_question/prompt.py +0 -0
  524. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/ask_user_question/tool.py +0 -0
  525. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/ask_user_question/validators.py +0 -0
  526. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/bash/__init__.py +0 -0
  527. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/bash/ast_security.py +0 -0
  528. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/bash/auto_mode_adapter.py +0 -0
  529. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/bash/backend.py +0 -0
  530. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/bash/bash_hardening.py +0 -0
  531. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/bash/bash_runtime_contract.py +0 -0
  532. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/bash/boundary_check.py +0 -0
  533. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/bash/command_allow_rules.py +0 -0
  534. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/bash/cwd_reporter.py +0 -0
  535. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/bash/events.py +0 -0
  536. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/bash/l1_decision_reason.py +0 -0
  537. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/bash/limits.py +0 -0
  538. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/bash/mode_validation.py +0 -0
  539. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/bash/models.py +0 -0
  540. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/bash/observability.py +0 -0
  541. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/bash/output_tracker.py +0 -0
  542. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/bash/output_utils.py +0 -0
  543. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/bash/path_security.py +0 -0
  544. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/bash/prompt.py +0 -0
  545. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/bash/read_only_validation.py +0 -0
  546. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/bash/result_presenter.py +0 -0
  547. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/bash/sandbox_decision.py +0 -0
  548. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/bash/security.py +0 -0
  549. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/bash/sed_edit_parser.py +0 -0
  550. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/bash/sed_validation.py +0 -0
  551. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/bash/semantic_matrix.py +0 -0
  552. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/bash/semantics.py +0 -0
  553. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/bash/shell_locator.py +0 -0
  554. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/bash/shell_quoting.py +0 -0
  555. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/bash/task_runtime.py +0 -0
  556. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/bash/tool.py +0 -0
  557. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/bash/windows_shell_quoting.py +0 -0
  558. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/edit/__init__.py +0 -0
  559. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/edit/backend.py +0 -0
  560. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/edit/diff_generator.py +0 -0
  561. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/edit/display_builder.py +0 -0
  562. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/edit/git_diff_generator.py +0 -0
  563. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/edit/limits.py +0 -0
  564. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/edit/models.py +0 -0
  565. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/edit/prompt.py +0 -0
  566. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/edit/quote_match.py +0 -0
  567. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/edit/quote_normalizer.py +0 -0
  568. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/edit/settings_validator.py +0 -0
  569. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/edit/staleness.py +0 -0
  570. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/edit/tool.py +0 -0
  571. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/edit/validator.py +0 -0
  572. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/glob/__init__.py +0 -0
  573. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/glob/models.py +0 -0
  574. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/glob/pagination.py +0 -0
  575. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/glob/prompt.py +0 -0
  576. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/glob/rg_list_backend.py +0 -0
  577. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/glob/rg_pattern.py +0 -0
  578. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/glob/tool.py +0 -0
  579. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/grep/__init__.py +0 -0
  580. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/grep/backend.py +0 -0
  581. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/grep/models.py +0 -0
  582. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/grep/prompt.py +0 -0
  583. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/grep/rg_subprocess_controller.py +0 -0
  584. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/grep/tool.py +0 -0
  585. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/plan_mode/__init__.py +0 -0
  586. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/plan_mode/constants.py +0 -0
  587. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/plan_mode/models.py +0 -0
  588. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/plan_mode/prompt.py +0 -0
  589. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/plan_mode/tool.py +0 -0
  590. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/read/__init__.py +0 -0
  591. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/read/backend.py +0 -0
  592. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/read/limits.py +0 -0
  593. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/read/models.py +0 -0
  594. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/read/prompt.py +0 -0
  595. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/read/tool.py +0 -0
  596. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/registry_names.py +0 -0
  597. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/ripgrep_plugin_exclusions.py +0 -0
  598. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/shared/__init__.py +0 -0
  599. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/shared/read_state_guard.py +0 -0
  600. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/shared/staleness.py +0 -0
  601. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/skill/__init__.py +0 -0
  602. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/skill/argument_substitution.py +0 -0
  603. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/skill/bundled/__init__.py +0 -0
  604. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/skill/bundled/prompts.py +0 -0
  605. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/skill/bundled/registry.py +0 -0
  606. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/skill/catalog.py +0 -0
  607. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/skill/dynamic_catalog.py +0 -0
  608. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/skill/dynamic_discoverer.py +0 -0
  609. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/skill/file_discovery.py +0 -0
  610. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/skill/fork.py +0 -0
  611. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/skill/guards.py +0 -0
  612. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/skill/hook_registration.py +0 -0
  613. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/skill/loader.py +0 -0
  614. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/skill/models.py +0 -0
  615. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/skill/multi_source_repository.py +0 -0
  616. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/skill/paths_matcher.py +0 -0
  617. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/skill/plugin_loader.py +0 -0
  618. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/skill/policy.py +0 -0
  619. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/skill/prompt.py +0 -0
  620. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/skill/repository_factory.py +0 -0
  621. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/skill/source_paths.py +0 -0
  622. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/skill/tool.py +0 -0
  623. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/task_create/__init__.py +0 -0
  624. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/task_create/hooks.py +0 -0
  625. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/task_create/limits.py +0 -0
  626. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/task_create/models.py +0 -0
  627. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/task_create/prompt.py +0 -0
  628. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/task_create/tool.py +0 -0
  629. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/task_get/__init__.py +0 -0
  630. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/task_get/models.py +0 -0
  631. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/task_get/prompt.py +0 -0
  632. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/task_get/tool.py +0 -0
  633. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/task_list/__init__.py +0 -0
  634. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/task_list/models.py +0 -0
  635. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/task_list/prompt.py +0 -0
  636. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/task_list/tool.py +0 -0
  637. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/task_update/__init__.py +0 -0
  638. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/task_update/hooks.py +0 -0
  639. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/task_update/models.py +0 -0
  640. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/task_update/prompt.py +0 -0
  641. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/task_update/tool.py +0 -0
  642. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/webfetch/__init__.py +0 -0
  643. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/webfetch/backend.py +0 -0
  644. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/webfetch/limits.py +0 -0
  645. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/webfetch/loader.py +0 -0
  646. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/webfetch/models.py +0 -0
  647. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/webfetch/preapproved.py +0 -0
  648. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/webfetch/prompt.py +0 -0
  649. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/webfetch/summary.py +0 -0
  650. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/webfetch/tool.py +0 -0
  651. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/websearch/__init__.py +0 -0
  652. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/websearch/backend.py +0 -0
  653. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/websearch/events.py +0 -0
  654. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/websearch/limits.py +0 -0
  655. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/websearch/loader.py +0 -0
  656. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/websearch/models.py +0 -0
  657. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/websearch/prompt.py +0 -0
  658. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/websearch/tool.py +0 -0
  659. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/write/__init__.py +0 -0
  660. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/write/backend.py +0 -0
  661. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/write/display_builder.py +0 -0
  662. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/write/limits.py +0 -0
  663. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/write/models.py +0 -0
  664. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/write/prompt.py +0 -0
  665. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/write/read_state_validator.py +0 -0
  666. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/write/tool.py +0 -0
  667. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/tools/write/validator.py +0 -0
  668. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/utils/__init__.py +0 -0
  669. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/utils/agent_settings.py +0 -0
  670. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/utils/claude_temp_paths.py +0 -0
  671. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/utils/cwd.py +0 -0
  672. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/utils/display_models.py +0 -0
  673. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/utils/file_mtime.py +0 -0
  674. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/utils/git/__init__.py +0 -0
  675. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/utils/git/gitignore.py +0 -0
  676. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/utils/git_roots.py +0 -0
  677. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/utils/git_settings.py +0 -0
  678. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/utils/host_platform.py +0 -0
  679. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/utils/path.py +0 -0
  680. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/utils/path_hierarchy.py +0 -0
  681. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/utils/path_user_input.py +0 -0
  682. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/utils/permissions/__init__.py +0 -0
  683. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/utils/permissions/filesystem.py +0 -0
  684. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/utils/rg_executable.py +0 -0
  685. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/utils/settings/__init__.py +0 -0
  686. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/utils/settings/managed_path.py +0 -0
  687. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/utils/structured_diff.py +0 -0
  688. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/utils/subprocess_text.py +0 -0
  689. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/utils/temp_paths.py +0 -0
  690. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/utils/tool_paths.py +0 -0
  691. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/utils/tool_result_storage.py +0 -0
  692. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/utils/unc_path.py +0 -0
  693. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/utils/win_reserved_paths.py +0 -0
  694. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/utils/windows_paths.py +0 -0
  695. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/workflow/batch.py +0 -0
  696. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/workflow/dag.py +0 -0
  697. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/workflow/event_adapter/__init__.py +0 -0
  698. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/workflow/event_adapter/depth_resolver.py +0 -0
  699. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/workflow/event_adapter/handlers/__init__.py +0 -0
  700. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/workflow/event_adapter/stack.py +0 -0
  701. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/workflow/memory_drain_registry.py +0 -0
  702. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/workflow/memory_session_policy.py +0 -0
  703. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/workflow/node.py +0 -0
  704. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/workflow/patterns/evaluator_optimizer.py +0 -0
  705. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/workflow/patterns/orchestrator.py +0 -0
  706. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/workflow/runtime.py +0 -0
  707. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/workflow/state.py +0 -0
  708. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/workspace/__init__.py +0 -0
  709. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/workspace/boundary.py +0 -0
  710. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/workspace/capabilities.py +0 -0
  711. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/workspace/config.py +0 -0
  712. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/workspace/errors.py +0 -0
  713. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/workspace/grant.py +0 -0
  714. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/workspace/l3_root_grant.py +0 -0
  715. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/workspace/path_canonical.py +0 -0
  716. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/workspace/path_key_normalizer.py +0 -0
  717. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/workspace/plans.py +0 -0
  718. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/workspace/project_key.py +0 -0
  719. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/workspace/project_memory_layout.py +0 -0
  720. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/workspace/resolver.py +0 -0
  721. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/workspace/root_grant_manager.py +0 -0
  722. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/workspace/tool_boundary.py +0 -0
  723. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/workspace/validators.py +0 -0
  724. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx/workspace/view.py +0 -0
  725. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx_python.egg-info/dependency_links.txt +0 -0
  726. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx_python.egg-info/not-zip-safe +0 -0
  727. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx_python.egg-info/requires.txt +0 -0
  728. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/langchain_agentx_python.egg-info/top_level.txt +0 -0
  729. {langchain-agentx-python-1.3.6 → langchain-agentx-python-1.3.8}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: langchain-agentx-python
3
- Version: 1.3.6
3
+ Version: 1.3.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__ = "1.3.6"
14
+ __version__ = "1.3.8"
15
15
 
16
16
  from .loop import ( # noqa: F401
17
17
  create_loop_agent,
@@ -0,0 +1,649 @@
1
+ """
2
+ workflow_container_projector.py — Workflow UI 容器树参考投影器
3
+
4
+ 职责:
5
+ - 将 LangchainAgentEvent 公共流投影为 CLI / Trace 可消费的容器树
6
+ - 按容器身份(workflow_path + scope + key)维护 active set,支持并发 parallel item
7
+ - 将 thinking / text / tool 正文挂到最深活跃容器(或显式 workflow_path 命中容器)
8
+
9
+ 链路位置:
10
+ - Layer 3: observability/events 消费侧参考实现
11
+ - 伴侣包(langchain_agentx_trace)应对齐本契约;SDK 禁止 import 伴侣包
12
+
13
+ 当前裁剪范围:
14
+ - 仅做参考投影与 fixture 生成,不负责终端渲染
15
+ - display.description 作为 subtitle,不与正文 preview 混淆
16
+ """
17
+
18
+ from __future__ import annotations
19
+
20
+ from dataclasses import dataclass, field
21
+ from enum import Enum
22
+ from typing import Any, Literal
23
+
24
+ from langchain_agentx.observability.events.agent_event_projector import (
25
+ LangchainAgentEvent,
26
+ LangchainAgentEventType,
27
+ )
28
+
29
+ WorkflowContainerScope = Literal[
30
+ "workflow",
31
+ "stage",
32
+ "item",
33
+ "branch",
34
+ "aggregate",
35
+ "subworkflow",
36
+ ]
37
+
38
+ WorkflowContainerStatus = Literal[
39
+ "pending",
40
+ "running",
41
+ "completed",
42
+ "failed",
43
+ "skipped",
44
+ "cancelled",
45
+ "blocked",
46
+ "retrying",
47
+ ]
48
+
49
+ ContentBlockKind = Literal["reasoning", "text", "tool"]
50
+
51
+
52
+ class ContainerAction(str, Enum):
53
+ """容器状态机动作。"""
54
+
55
+ OPEN = "open"
56
+ CLOSE = "close"
57
+ APPEND_CONTENT = "append-content"
58
+
59
+
60
+ _OPEN_EVENT_TYPES: frozenset[LangchainAgentEventType] = frozenset({
61
+ LangchainAgentEventType.WORKFLOW_START,
62
+ LangchainAgentEventType.SUBWORKFLOW_START,
63
+ LangchainAgentEventType.STAGE_START,
64
+ LangchainAgentEventType.PARALLEL_ITEM_START,
65
+ LangchainAgentEventType.PARALLEL_AGGREGATE_START,
66
+ LangchainAgentEventType.ROUTE_BRANCH_START,
67
+ })
68
+
69
+ _CLOSE_EVENT_TYPES: frozenset[LangchainAgentEventType] = frozenset({
70
+ LangchainAgentEventType.WORKFLOW_END,
71
+ LangchainAgentEventType.WORKFLOW_FAILED,
72
+ LangchainAgentEventType.SUBWORKFLOW_END,
73
+ LangchainAgentEventType.STAGE_DONE,
74
+ LangchainAgentEventType.STAGE_FAILED,
75
+ LangchainAgentEventType.PARALLEL_ITEM_DONE,
76
+ LangchainAgentEventType.PARALLEL_ITEM_FAILED,
77
+ LangchainAgentEventType.PARALLEL_AGGREGATE_DONE,
78
+ LangchainAgentEventType.PARALLEL_AGGREGATE_FAILED,
79
+ LangchainAgentEventType.ROUTE_BRANCH_DONE,
80
+ LangchainAgentEventType.ROUTE_BRANCH_FAILED,
81
+ })
82
+
83
+ _EVENT_TYPE_TO_SCOPE: dict[LangchainAgentEventType, WorkflowContainerScope] = {
84
+ LangchainAgentEventType.WORKFLOW_START: "workflow",
85
+ LangchainAgentEventType.WORKFLOW_END: "workflow",
86
+ LangchainAgentEventType.WORKFLOW_FAILED: "workflow",
87
+ LangchainAgentEventType.SUBWORKFLOW_START: "subworkflow",
88
+ LangchainAgentEventType.SUBWORKFLOW_END: "subworkflow",
89
+ LangchainAgentEventType.STAGE_START: "stage",
90
+ LangchainAgentEventType.STAGE_DONE: "stage",
91
+ LangchainAgentEventType.STAGE_FAILED: "stage",
92
+ LangchainAgentEventType.PARALLEL_ITEM_START: "item",
93
+ LangchainAgentEventType.PARALLEL_ITEM_DONE: "item",
94
+ LangchainAgentEventType.PARALLEL_ITEM_FAILED: "item",
95
+ LangchainAgentEventType.PARALLEL_AGGREGATE_START: "aggregate",
96
+ LangchainAgentEventType.PARALLEL_AGGREGATE_DONE: "aggregate",
97
+ LangchainAgentEventType.PARALLEL_AGGREGATE_FAILED: "aggregate",
98
+ LangchainAgentEventType.ROUTE_BRANCH_START: "branch",
99
+ LangchainAgentEventType.ROUTE_BRANCH_DONE: "branch",
100
+ LangchainAgentEventType.ROUTE_BRANCH_FAILED: "branch",
101
+ }
102
+
103
+ _CONTENT_EVENT_TYPES: frozenset[LangchainAgentEventType] = frozenset({
104
+ LangchainAgentEventType.REASONING_START,
105
+ LangchainAgentEventType.REASONING_DELTA,
106
+ LangchainAgentEventType.REASONING_END,
107
+ LangchainAgentEventType.TEXT_START,
108
+ LangchainAgentEventType.TEXT_DELTA,
109
+ LangchainAgentEventType.TEXT_END,
110
+ LangchainAgentEventType.TOOL_INPUT,
111
+ LangchainAgentEventType.TOOL_INPUT_START,
112
+ LangchainAgentEventType.TOOL_INPUT_DELTA,
113
+ LangchainAgentEventType.TOOL_CALL,
114
+ LangchainAgentEventType.TOOL_RESULT,
115
+ LangchainAgentEventType.TOOL_ERROR,
116
+ LangchainAgentEventType.TOOL_PROGRESS,
117
+ })
118
+
119
+ _SCOPE_PRIORITY: dict[WorkflowContainerScope, int] = {
120
+ "workflow": 0,
121
+ "subworkflow": 1,
122
+ "aggregate": 2,
123
+ "stage": 3,
124
+ "item": 3,
125
+ "branch": 3,
126
+ }
127
+
128
+
129
+ def build_container_id(
130
+ workflow_path: str,
131
+ scope: WorkflowContainerScope,
132
+ scope_key: str,
133
+ ) -> str:
134
+ """按 workflow_path + scope + key 生成唯一容器身份。"""
135
+ return f"{workflow_path}|{scope}:{scope_key}"
136
+
137
+
138
+ def resolve_scope_key(event_type: LangchainAgentEventType, data: dict[str, Any]) -> str:
139
+ """从结构事件 data 提取 scope key。"""
140
+ if event_type in (
141
+ LangchainAgentEventType.WORKFLOW_START,
142
+ LangchainAgentEventType.WORKFLOW_END,
143
+ LangchainAgentEventType.WORKFLOW_FAILED,
144
+ ):
145
+ workflow_id = data.get("workflow_id")
146
+ if isinstance(workflow_id, str) and workflow_id:
147
+ return workflow_id
148
+ return str(data.get("workflow_path", "workflow"))
149
+
150
+ if event_type in (
151
+ LangchainAgentEventType.SUBWORKFLOW_START,
152
+ LangchainAgentEventType.SUBWORKFLOW_END,
153
+ ):
154
+ return str(data.get("child_workflow_id", "subworkflow"))
155
+
156
+ if event_type in (
157
+ LangchainAgentEventType.STAGE_START,
158
+ LangchainAgentEventType.STAGE_DONE,
159
+ LangchainAgentEventType.STAGE_FAILED,
160
+ ):
161
+ return str(data.get("stage_key", data.get("stage_index", "stage")))
162
+
163
+ if event_type in (
164
+ LangchainAgentEventType.PARALLEL_ITEM_START,
165
+ LangchainAgentEventType.PARALLEL_ITEM_DONE,
166
+ LangchainAgentEventType.PARALLEL_ITEM_FAILED,
167
+ ):
168
+ return str(data.get("item_key", data.get("item_index", "item")))
169
+
170
+ if event_type in (
171
+ LangchainAgentEventType.PARALLEL_AGGREGATE_START,
172
+ LangchainAgentEventType.PARALLEL_AGGREGATE_DONE,
173
+ LangchainAgentEventType.PARALLEL_AGGREGATE_FAILED,
174
+ ):
175
+ return str(data.get("aggregate_key", "aggregate"))
176
+
177
+ if event_type in (
178
+ LangchainAgentEventType.ROUTE_BRANCH_START,
179
+ LangchainAgentEventType.ROUTE_BRANCH_DONE,
180
+ LangchainAgentEventType.ROUTE_BRANCH_FAILED,
181
+ ):
182
+ return str(data.get("branch_key", data.get("branch_node", "branch")))
183
+
184
+ display = data.get("display")
185
+ if isinstance(display, dict):
186
+ debug_key = display.get("debug_key")
187
+ if isinstance(debug_key, str) and debug_key:
188
+ return debug_key
189
+
190
+ return "unknown"
191
+
192
+
193
+ def _display_status(data: dict[str, Any], fallback: WorkflowContainerStatus) -> WorkflowContainerStatus:
194
+ display = data.get("display")
195
+ if isinstance(display, dict):
196
+ status = display.get("status")
197
+ if isinstance(status, str) and status:
198
+ return status # type: ignore[return-value]
199
+ return fallback
200
+
201
+
202
+ def _close_status(event_type: LangchainAgentEventType) -> WorkflowContainerStatus:
203
+ if event_type in (
204
+ LangchainAgentEventType.WORKFLOW_FAILED,
205
+ LangchainAgentEventType.STAGE_FAILED,
206
+ LangchainAgentEventType.PARALLEL_ITEM_FAILED,
207
+ LangchainAgentEventType.PARALLEL_AGGREGATE_FAILED,
208
+ LangchainAgentEventType.ROUTE_BRANCH_FAILED,
209
+ ):
210
+ return "failed"
211
+ return "completed"
212
+
213
+
214
+ @dataclass
215
+ class WorkflowContentBlock:
216
+ """容器下挂载的正文块(preview 层,非 subtitle)。"""
217
+
218
+ kind: ContentBlockKind
219
+ preview: str
220
+ tool_name: str | None = None
221
+
222
+
223
+ @dataclass
224
+ class WorkflowContainerNode:
225
+ """UI 容器节点。"""
226
+
227
+ container_id: str
228
+ scope: WorkflowContainerScope
229
+ workflow_path: str
230
+ workflow_depth: int
231
+ scope_key: str
232
+ title: str
233
+ subtitle: str
234
+ status: WorkflowContainerStatus
235
+ pattern: str
236
+ parent_container_id: str | None
237
+ content_blocks: list[WorkflowContentBlock] = field(default_factory=list)
238
+ is_open: bool = True
239
+
240
+
241
+ @dataclass
242
+ class WorkflowContainerTreeSnapshot:
243
+ """容器树快照(fixture / 测试 / CLI 预览)。"""
244
+
245
+ root_container_ids: list[str]
246
+ containers: dict[str, WorkflowContainerNode]
247
+ active_container_ids: list[str]
248
+
249
+
250
+ @dataclass
251
+ class WorkflowContainerActiveSet:
252
+ """按容器身份索引的活跃集(并发 item 不依赖单一栈)。"""
253
+
254
+ _open_order: list[str] = field(default_factory=list)
255
+ _nodes: dict[str, WorkflowContainerNode] = field(default_factory=dict)
256
+
257
+ def open(self, node: WorkflowContainerNode) -> None:
258
+ self._nodes[node.container_id] = node
259
+ if node.container_id not in self._open_order:
260
+ self._open_order.append(node.container_id)
261
+
262
+ def close(self, container_id: str, status: WorkflowContainerStatus) -> None:
263
+ node = self._nodes.get(container_id)
264
+ if node is None:
265
+ return
266
+ node.status = status
267
+ node.is_open = False
268
+ if container_id in self._open_order:
269
+ self._open_order.remove(container_id)
270
+
271
+ @property
272
+ def active_ids(self) -> list[str]:
273
+ return list(self._open_order)
274
+
275
+ def deepest_active(self) -> str | None:
276
+ if not self._open_order:
277
+ return None
278
+ return max(
279
+ self._open_order,
280
+ key=self.rank_container,
281
+ )
282
+
283
+ def resolve_content_target(
284
+ self,
285
+ *,
286
+ workflow_path: str | None,
287
+ scope_key: str | None,
288
+ ) -> str | None:
289
+ if scope_key:
290
+ for container_id in reversed(self._open_order):
291
+ node = self._nodes[container_id]
292
+ if node.scope_key == scope_key and node.is_open:
293
+ if workflow_path is None or node.workflow_path == workflow_path:
294
+ return container_id
295
+
296
+ if workflow_path:
297
+ candidates = [
298
+ cid
299
+ for cid in self._open_order
300
+ if self._nodes[cid].is_open
301
+ and (
302
+ self._nodes[cid].workflow_path == workflow_path
303
+ or workflow_path.startswith(self._nodes[cid].workflow_path + ">")
304
+ )
305
+ ]
306
+ if candidates:
307
+ return max(candidates, key=self.rank_container)
308
+
309
+ return self.deepest_active()
310
+
311
+ def close_descendants_of_path(self, workflow_path: str, status: WorkflowContainerStatus) -> None:
312
+ """关闭同一 workflow 子树下仍 open 的容器(workflow 结束时级联)。"""
313
+ to_close = [
314
+ cid
315
+ for cid in list(self._open_order)
316
+ if self._nodes[cid].workflow_path == workflow_path
317
+ or self._nodes[cid].workflow_path.startswith(workflow_path + ">")
318
+ ]
319
+ for container_id in to_close:
320
+ self.close(container_id, status)
321
+
322
+ def rank_container(self, container_id: str) -> tuple[int, int, int, int]:
323
+ node = self._nodes[container_id]
324
+ try:
325
+ open_index = self._open_order.index(container_id)
326
+ except ValueError:
327
+ open_index = -1
328
+ scope_priority = _SCOPE_PRIORITY.get(node.scope, 0)
329
+ return (
330
+ node.workflow_depth,
331
+ scope_priority,
332
+ len(node.workflow_path),
333
+ open_index,
334
+ )
335
+
336
+
337
+ class WorkflowContainerStateMachine:
338
+ """事件 → 容器状态机(参考实现)。"""
339
+
340
+ def __init__(self) -> None:
341
+ self._active = WorkflowContainerActiveSet()
342
+ self._root_ids: list[str] = []
343
+
344
+ @property
345
+ def active_set(self) -> WorkflowContainerActiveSet:
346
+ return self._active
347
+
348
+ def apply(self, event: LangchainAgentEvent) -> ContainerAction | None:
349
+ event_type = event.event_type
350
+ data = event.data if isinstance(event.data, dict) else {}
351
+
352
+ if event_type in _OPEN_EVENT_TYPES:
353
+ self._open_container(event_type, data)
354
+ return ContainerAction.OPEN
355
+
356
+ if event_type in _CLOSE_EVENT_TYPES:
357
+ self._close_container(event_type, data)
358
+ return ContainerAction.CLOSE
359
+
360
+ if event_type in _CONTENT_EVENT_TYPES:
361
+ self._append_content(event)
362
+ return ContainerAction.APPEND_CONTENT
363
+
364
+ return None
365
+
366
+ def snapshot(self) -> WorkflowContainerTreeSnapshot:
367
+ return WorkflowContainerTreeSnapshot(
368
+ root_container_ids=list(self._root_ids),
369
+ containers=dict(self._active._nodes),
370
+ active_container_ids=self._active.active_ids,
371
+ )
372
+
373
+ def _open_container(
374
+ self,
375
+ event_type: LangchainAgentEventType,
376
+ data: dict[str, Any],
377
+ ) -> None:
378
+ scope = _EVENT_TYPE_TO_SCOPE[event_type]
379
+ workflow_path = str(data.get("workflow_path", ""))
380
+ workflow_depth = int(data.get("workflow_depth", 0))
381
+ scope_key = resolve_scope_key(event_type, data)
382
+ container_id = build_container_id(workflow_path, scope, scope_key)
383
+
384
+ display = data.get("display") if isinstance(data.get("display"), dict) else {}
385
+ title = str(display.get("title") or scope_key)
386
+ subtitle = str(display.get("description") or "")
387
+ pattern = str(display.get("pattern") or "")
388
+ status = _display_status(data, "running")
389
+
390
+ parent_id = self._resolve_parent_id(workflow_path, scope)
391
+ node = WorkflowContainerNode(
392
+ container_id=container_id,
393
+ scope=scope,
394
+ workflow_path=workflow_path,
395
+ workflow_depth=workflow_depth,
396
+ scope_key=scope_key,
397
+ title=title,
398
+ subtitle=subtitle,
399
+ status=status,
400
+ pattern=pattern,
401
+ parent_container_id=parent_id,
402
+ is_open=True,
403
+ )
404
+ self._active.open(node)
405
+ if scope == "workflow" and container_id not in self._root_ids:
406
+ self._root_ids.append(container_id)
407
+
408
+ def _close_container(
409
+ self,
410
+ event_type: LangchainAgentEventType,
411
+ data: dict[str, Any],
412
+ ) -> None:
413
+ scope = _EVENT_TYPE_TO_SCOPE[event_type]
414
+ workflow_path = str(data.get("workflow_path", ""))
415
+ scope_key = resolve_scope_key(event_type, data)
416
+ container_id = build_container_id(workflow_path, scope, scope_key)
417
+ status = _display_status(data, _close_status(event_type))
418
+ self._active.close(container_id, status)
419
+ if scope == "workflow":
420
+ self._active.close_descendants_of_path(workflow_path, status)
421
+
422
+ def _append_content(self, event: LangchainAgentEvent) -> None:
423
+ data = event.data if isinstance(event.data, dict) else {}
424
+ workflow_path = data.get("workflow_path")
425
+ path = workflow_path if isinstance(workflow_path, str) else None
426
+
427
+ scope_key = None
428
+ for key_name in ("stage_key", "item_key", "branch_key", "debug_key"):
429
+ value = data.get(key_name)
430
+ if isinstance(value, str) and value:
431
+ scope_key = value
432
+ break
433
+ if scope_key is None:
434
+ display = data.get("display")
435
+ if isinstance(display, dict):
436
+ debug_key = display.get("debug_key")
437
+ if isinstance(debug_key, str) and debug_key:
438
+ scope_key = debug_key
439
+
440
+ target_id = self._active.resolve_content_target(
441
+ workflow_path=path,
442
+ scope_key=scope_key,
443
+ )
444
+ if target_id is None:
445
+ return
446
+
447
+ block = self._content_block_from_event(event)
448
+ if block is None:
449
+ return
450
+ self._active._nodes[target_id].content_blocks.append(block)
451
+
452
+ def _resolve_parent_id(
453
+ self,
454
+ workflow_path: str,
455
+ scope: WorkflowContainerScope,
456
+ ) -> str | None:
457
+ if scope == "workflow":
458
+ return None
459
+
460
+ open_nodes = [
461
+ node
462
+ for cid in self._active._open_order
463
+ if (node := self._active._nodes[cid]).is_open
464
+ ]
465
+ if not open_nodes:
466
+ return None
467
+
468
+ prefix_candidates = [
469
+ node
470
+ for node in open_nodes
471
+ if workflow_path == node.workflow_path
472
+ or workflow_path.startswith(node.workflow_path + ">")
473
+ ]
474
+ if prefix_candidates:
475
+ parent = max(prefix_candidates, key=lambda n: self._active.rank_container(n.container_id))
476
+ if parent.workflow_path == workflow_path and parent.scope == "workflow":
477
+ return parent.container_id
478
+ if workflow_path.startswith(parent.workflow_path + ">"):
479
+ return parent.container_id
480
+ if parent.workflow_path == workflow_path and parent.scope != scope:
481
+ return parent.container_id
482
+
483
+ workflow_candidates = [
484
+ node for node in open_nodes if node.scope == "workflow"
485
+ ]
486
+ if workflow_candidates:
487
+ return max(
488
+ workflow_candidates,
489
+ key=lambda n: self._active.rank_container(n.container_id),
490
+ ).container_id
491
+
492
+ return max(
493
+ open_nodes,
494
+ key=lambda n: self._active.rank_container(n.container_id),
495
+ ).container_id
496
+
497
+ @staticmethod
498
+ def _content_block_from_event(event: LangchainAgentEvent) -> WorkflowContentBlock | None:
499
+ event_type = event.event_type
500
+ data = event.data if isinstance(event.data, dict) else {}
501
+
502
+ if event_type in (
503
+ LangchainAgentEventType.REASONING_START,
504
+ LangchainAgentEventType.REASONING_DELTA,
505
+ LangchainAgentEventType.REASONING_END,
506
+ ):
507
+ preview = str(data.get("delta") or data.get("text") or data.get("reasoning") or "")
508
+ if not preview and event_type == LangchainAgentEventType.REASONING_START:
509
+ preview = "Thinking…"
510
+ return WorkflowContentBlock(kind="reasoning", preview=preview)
511
+
512
+ if event_type in (
513
+ LangchainAgentEventType.TEXT_START,
514
+ LangchainAgentEventType.TEXT_DELTA,
515
+ LangchainAgentEventType.TEXT_END,
516
+ ):
517
+ preview = str(data.get("delta") or data.get("text") or "")
518
+ return WorkflowContentBlock(kind="text", preview=preview)
519
+
520
+ if event_type in _CONTENT_EVENT_TYPES:
521
+ tool_name = event.tool_name or data.get("tool_name")
522
+ preview = str(
523
+ data.get("summary")
524
+ or data.get("output")
525
+ or data.get("input")
526
+ or data.get("delta")
527
+ or tool_name
528
+ or event_type.value
529
+ )
530
+ return WorkflowContentBlock(
531
+ kind="tool",
532
+ preview=preview,
533
+ tool_name=str(tool_name) if tool_name else None,
534
+ )
535
+
536
+ return None
537
+
538
+
539
+ class WorkflowContainerTreeProjector:
540
+ """LangchainAgentEvent 流 → 容器树快照。"""
541
+
542
+ def __init__(self) -> None:
543
+ self._machine = WorkflowContainerStateMachine()
544
+
545
+ def consume(self, event: LangchainAgentEvent) -> ContainerAction | None:
546
+ return self._machine.apply(event)
547
+
548
+ def consume_all(self, events: list[LangchainAgentEvent]) -> WorkflowContainerTreeSnapshot:
549
+ for event in events:
550
+ self.consume(event)
551
+ return self.snapshot()
552
+
553
+ def snapshot(self) -> WorkflowContainerTreeSnapshot:
554
+ return self._machine.snapshot()
555
+
556
+
557
+ def render_cli_tree(snapshot: WorkflowContainerTreeSnapshot) -> str:
558
+ """渲染接近设计文档示意的 CLI 树文本(fixture 对照用)。"""
559
+ lines: list[str] = []
560
+
561
+ def walk(container_id: str, indent: int) -> None:
562
+ node = snapshot.containers[container_id]
563
+ prefix = " " * indent
564
+ status_label = node.status.capitalize()
565
+ header = f"{prefix}● {node.title} · {status_label}"
566
+ if node.pattern:
567
+ header += f" · {node.pattern}"
568
+ lines.append(header)
569
+
570
+ meta_parts: list[str] = []
571
+ if node.scope_key:
572
+ meta_parts.append(node.scope_key)
573
+ display_progress = node.subtitle
574
+ if meta_parts:
575
+ lines.append(f"{prefix} {' · '.join(meta_parts)}")
576
+ if display_progress:
577
+ lines.append(f"{prefix} {display_progress}")
578
+
579
+ for block in node.content_blocks:
580
+ if block.kind == "reasoning":
581
+ lines.append(f"{prefix} ∴ {block.preview or 'Thinking…'}")
582
+ elif block.kind == "text":
583
+ lines.append(f"{prefix} ⎿ {block.preview}")
584
+ else:
585
+ tool = block.tool_name or "tool"
586
+ lines.append(f"{prefix} ⎿ [{tool}] {block.preview}")
587
+
588
+ child_ids = [
589
+ cid
590
+ for cid, child in snapshot.containers.items()
591
+ if child.parent_container_id == container_id
592
+ ]
593
+ child_ids.sort(key=lambda cid: snapshot.containers[cid].container_id)
594
+ for child_id in child_ids:
595
+ walk(child_id, indent + 1)
596
+
597
+ for root_id in snapshot.root_container_ids:
598
+ walk(root_id, 0)
599
+
600
+ return "\n".join(lines)
601
+
602
+
603
+ def snapshot_to_dict(snapshot: WorkflowContainerTreeSnapshot) -> dict[str, Any]:
604
+ """序列化快照为 JSON fixture 友好结构。"""
605
+ return {
606
+ "root_container_ids": snapshot.root_container_ids,
607
+ "active_container_ids": snapshot.active_container_ids,
608
+ "containers": {
609
+ cid: {
610
+ "container_id": node.container_id,
611
+ "scope": node.scope,
612
+ "workflow_path": node.workflow_path,
613
+ "workflow_depth": node.workflow_depth,
614
+ "scope_key": node.scope_key,
615
+ "title": node.title,
616
+ "subtitle": node.subtitle,
617
+ "status": node.status,
618
+ "pattern": node.pattern,
619
+ "parent_container_id": node.parent_container_id,
620
+ "is_open": node.is_open,
621
+ "content_blocks": [
622
+ {
623
+ "kind": block.kind,
624
+ "preview": block.preview,
625
+ "tool_name": block.tool_name,
626
+ }
627
+ for block in node.content_blocks
628
+ ],
629
+ }
630
+ for cid, node in snapshot.containers.items()
631
+ },
632
+ }
633
+
634
+
635
+ __all__ = [
636
+ "ContainerAction",
637
+ "WorkflowContainerScope",
638
+ "WorkflowContainerStatus",
639
+ "WorkflowContentBlock",
640
+ "WorkflowContainerNode",
641
+ "WorkflowContainerTreeSnapshot",
642
+ "WorkflowContainerActiveSet",
643
+ "WorkflowContainerStateMachine",
644
+ "WorkflowContainerTreeProjector",
645
+ "build_container_id",
646
+ "resolve_scope_key",
647
+ "render_cli_tree",
648
+ "snapshot_to_dict",
649
+ ]