sycommon-python-lib 0.2.7a56__tar.gz → 0.2.8a0__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 (355) hide show
  1. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/PKG-INFO +4 -4
  2. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/pyproject.toml +4 -4
  3. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/agent/sandbox/file_ops.py +5 -1
  4. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/agent/sandbox/http_sandbox_backend.py +16 -2
  5. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/middleware/sandbox.py +70 -11
  6. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/models/sandbox.py +5 -0
  7. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon_python_lib.egg-info/PKG-INFO +4 -4
  8. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon_python_lib.egg-info/requires.txt +3 -3
  9. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/README.md +0 -0
  10. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/setup.cfg +0 -0
  11. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/command/__init__.py +0 -0
  12. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/command/cli.py +0 -0
  13. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/command/core/__init__.py +0 -0
  14. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/command/core/console.py +0 -0
  15. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/command/core/models.py +0 -0
  16. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/command/core/project.py +0 -0
  17. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/command/core/utils.py +0 -0
  18. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/command/templates/__init__.py +0 -0
  19. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/command/templates/agent/README.md.tpl +0 -0
  20. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/command/templates/agent/__init__.py +0 -0
  21. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/command/templates/agent/agent/__init__.py.tpl +0 -0
  22. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/command/templates/agent/agent/main_agent.py.tpl +0 -0
  23. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/command/templates/agent/agent/nodes/__init__.py.tpl +0 -0
  24. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/command/templates/agent/agent/nodes/example_node.py.tpl +0 -0
  25. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/command/templates/agent/agent/states/__init__.py.tpl +0 -0
  26. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/command/templates/agent/agent/states/agent_state.py.tpl +0 -0
  27. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/command/templates/agent/api/__init__.py.tpl +0 -0
  28. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/command/templates/agent/api/query.py.tpl +0 -0
  29. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/command/templates/agent/api/sse/__init__.py.tpl +0 -0
  30. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/command/templates/agent/api/sse/agent.py.tpl +0 -0
  31. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/command/templates/agent/app.py.tpl +0 -0
  32. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/command/templates/agent/client/__init__.py.tpl +0 -0
  33. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/command/templates/agent/db/__init__.py.tpl +0 -0
  34. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/command/templates/agent/db/model/__init__.py.tpl +0 -0
  35. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/command/templates/agent/db/model/entity.py.tpl +0 -0
  36. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/command/templates/agent/db/service.py.tpl +0 -0
  37. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/command/templates/agent/model/__init__.py.tpl +0 -0
  38. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/command/templates/agent/model/parse.py.tpl +0 -0
  39. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/command/templates/agent/tools/__init__.py.tpl +0 -0
  40. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/command/templates/agent/tools/mq.py.tpl +0 -0
  41. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/command/templates/base/.env.tpl +0 -0
  42. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/command/templates/base/.gitignore.tpl +0 -0
  43. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/command/templates/base/Dockerfile.tpl +0 -0
  44. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/command/templates/base/README.md.tpl +0 -0
  45. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/command/templates/base/__init__.py +0 -0
  46. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/command/templates/base/app.py.tpl +0 -0
  47. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/command/templates/base/app.yaml.tpl +0 -0
  48. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/command/templates/base/client/FileServiceClient.py.tpl +0 -0
  49. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/command/templates/base/client/__init__.py.tpl +0 -0
  50. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/command/templates/base/model/__init__.py.tpl +0 -0
  51. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/command/templates/base/model/file_info.py.tpl +0 -0
  52. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/command/templates/base/requirements.txt.tpl +0 -0
  53. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/command/templates/cli/README.md.tpl +0 -0
  54. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/command/templates/cli/__init__.py +0 -0
  55. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/command/templates/cli/app.py.tpl +0 -0
  56. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/command/templates/cli/commands/__init__.py.tpl +0 -0
  57. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/command/templates/cli/commands/hello.py.tpl +0 -0
  58. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/command/templates/cli/pyproject.toml.tpl +0 -0
  59. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/command/templates/cli/tools/__init__.py.tpl +0 -0
  60. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/command/templates/web/README.md.tpl +0 -0
  61. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/command/templates/web/__init__.py +0 -0
  62. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/command/templates/web/api/__init__.py.tpl +0 -0
  63. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/command/templates/web/api/echo.py.tpl +0 -0
  64. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/command/templates/web/api/sse/__init__.py.tpl +0 -0
  65. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/command/templates/web/api/sse/echo.py.tpl +0 -0
  66. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/command/templates/web/app.py.tpl +0 -0
  67. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/command/templates/web/client/__init__.py.tpl +0 -0
  68. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/command/templates/web/model/__init__.py.tpl +0 -0
  69. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/command/templates/web/tools/__init__.py.tpl +0 -0
  70. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/command/templates/web/tools/mq.py.tpl +0 -0
  71. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/nexus/__init__.py +0 -0
  72. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycli/__init__.py +0 -0
  73. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycli/__main__.py +0 -0
  74. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycli/acp/__init__.py +0 -0
  75. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycli/acp/config.py +0 -0
  76. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycli/acp/executor.py +0 -0
  77. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycli/acp/registry.py +0 -0
  78. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycli/acp/server.py +0 -0
  79. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycli/agents/__init__.py +0 -0
  80. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycli/agents/factory.py +0 -0
  81. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycli/agents/prompts.py +0 -0
  82. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycli/cdp/__init__.py +0 -0
  83. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycli/cdp/browser.py +0 -0
  84. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycli/cdp/capabilities/__init__.py +0 -0
  85. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycli/cdp/capabilities/console.py +0 -0
  86. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycli/cdp/capabilities/dom.py +0 -0
  87. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycli/cdp/capabilities/network.py +0 -0
  88. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycli/cdp/capabilities/page_errors.py +0 -0
  89. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycli/cdp/capabilities/performance.py +0 -0
  90. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycli/cdp/capabilities/screenshot.py +0 -0
  91. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycli/cdp/client.py +0 -0
  92. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycli/cdp/protocol.py +0 -0
  93. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycli/cdp/repl.py +0 -0
  94. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycli/cli.py +0 -0
  95. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycli/commands/__init__.py +0 -0
  96. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycli/commands/acp_cmd.py +0 -0
  97. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycli/commands/cdp_cmd.py +0 -0
  98. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycli/commands/chat_cmd.py +0 -0
  99. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycli/commands/create_cmd.py +0 -0
  100. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycli/commands/evaluate_cmd.py +0 -0
  101. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycli/commands/init_cmd.py +0 -0
  102. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycli/commands/memory_cmd.py +0 -0
  103. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycli/commands/resume_cmd.py +0 -0
  104. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycli/commands/rollback_cmd.py +0 -0
  105. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycli/commands/run_cmd.py +0 -0
  106. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycli/core/__init__.py +0 -0
  107. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycli/core/backend.py +0 -0
  108. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycli/core/config.py +0 -0
  109. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycli/core/display.py +0 -0
  110. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycli/core/git_integration.py +0 -0
  111. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycli/core/llm.py +0 -0
  112. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycli/core/state.py +0 -0
  113. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycli/evaluate/__init__.py +0 -0
  114. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycli/evaluate/api_evaluator.py +0 -0
  115. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycli/memory/__init__.py +0 -0
  116. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycli/memory/compressor.py +0 -0
  117. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycli/memory/full.py +0 -0
  118. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycli/memory/hot.py +0 -0
  119. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycli/memory/manager.py +0 -0
  120. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycli/memory/warm.py +0 -0
  121. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycli/mode/__init__.py +0 -0
  122. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycli/mode/create.py +0 -0
  123. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycli/mode/optimize.py +0 -0
  124. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycli/models/__init__.py +0 -0
  125. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycli/models/config_models.py +0 -0
  126. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycli/rl/__init__.py +0 -0
  127. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycli/rl/baseline_tests.py +0 -0
  128. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycli/rl/checkpoint.py +0 -0
  129. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycli/rl/convergence.py +0 -0
  130. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycli/rl/diagnosis.py +0 -0
  131. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycli/rl/engine.py +0 -0
  132. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycli/rl/environment.py +0 -0
  133. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycli/rl/experience.py +0 -0
  134. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycli/rl/harness_prompts.py +0 -0
  135. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycli/rl/history.py +0 -0
  136. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycli/rl/optimization_logger.py +0 -0
  137. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycli/rl/pre_validation.py +0 -0
  138. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycli/rl/reward.py +0 -0
  139. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycli/rl/strategy_bandit.py +0 -0
  140. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycli/rl/strategy_generator.py +0 -0
  141. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycli/rl/strategy_prompts.py +0 -0
  142. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycli/simple_chat_agent.py +0 -0
  143. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycli/skills/__init__.py +0 -0
  144. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/__init__.py +0 -0
  145. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/agent/__init__.py +0 -0
  146. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/agent/acp/__init__.py +0 -0
  147. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/agent/acp/client.py +0 -0
  148. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/agent/acp/fetch.py +0 -0
  149. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/agent/acp/ssh_init.py +0 -0
  150. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/agent/acp/tool.py +0 -0
  151. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/agent/agent_manager.py +0 -0
  152. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/agent/chat_events.py +0 -0
  153. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/agent/deep_agent.py +0 -0
  154. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/agent/mcp/__init__.py +0 -0
  155. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/agent/mcp/models.py +0 -0
  156. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/agent/mcp/tool_loader.py +0 -0
  157. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/agent/middleware/model_request_prep.py +0 -0
  158. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/agent/middleware/sandbox_path_guard.py +0 -0
  159. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/agent/middleware/sensitive_guard.py +0 -0
  160. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/agent/middleware/sitecustomize.py +0 -0
  161. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/agent/middleware/skill_api_whitelist.py +0 -0
  162. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/agent/middleware/skill_wl_check.py +0 -0
  163. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/agent/middleware/skill_write_guard.py +0 -0
  164. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/agent/multi_agent_team.py +0 -0
  165. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/agent/reasoning_content_patch.py +0 -0
  166. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/agent/resume_compactor.py +0 -0
  167. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/agent/sandbox/__init__.py +0 -0
  168. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/agent/sandbox/consistent_hash.py +0 -0
  169. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/agent/sandbox/minio_sync.py +0 -0
  170. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/agent/sandbox/sandbox_pool.py +0 -0
  171. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/agent/sandbox/sandbox_recovery.py +0 -0
  172. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/agent/sandbox/session.py +0 -0
  173. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/agent/summarization_utils.py +0 -0
  174. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/auth/__init__.py +0 -0
  175. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/auth/ldap_service.py +0 -0
  176. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/auth/oa_cache.py +0 -0
  177. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/auth/oa_crypto.py +0 -0
  178. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/auth/oa_service.py +0 -0
  179. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/auth/wecom_ldap_service.py +0 -0
  180. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/config/ACPAgentConfig.py +0 -0
  181. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/config/Config.py +0 -0
  182. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/config/DatabaseConfig.py +0 -0
  183. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/config/ElasticsearchConfig.py +0 -0
  184. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/config/EmbeddingConfig.py +0 -0
  185. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/config/LLMConfig.py +0 -0
  186. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/config/LangfuseConfig.py +0 -0
  187. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/config/MQConfig.py +0 -0
  188. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/config/PgConfig.py +0 -0
  189. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/config/RedisConfig.py +0 -0
  190. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/config/RerankerConfig.py +0 -0
  191. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/config/SentryConfig.py +0 -0
  192. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/config/SkillApiWhitelistConfig.py +0 -0
  193. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/config/XxlJobConfig.py +0 -0
  194. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/config/__init__.py +0 -0
  195. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/config/config_change_notifier.py +0 -0
  196. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/database/async_base_db_service.py +0 -0
  197. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/database/async_database_service.py +0 -0
  198. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/database/base_db_service.py +0 -0
  199. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/database/database_service.py +0 -0
  200. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/database/elasticsearch_service.py +0 -0
  201. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/database/pg_checkpoint_service.py +0 -0
  202. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/database/redis_service.py +0 -0
  203. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/database/resilient_pg_saver.py +0 -0
  204. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/database/token_usage_db_service.py +0 -0
  205. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/health/__init__.py +0 -0
  206. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/health/health_check.py +0 -0
  207. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/health/metrics.py +0 -0
  208. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/health/ping.py +0 -0
  209. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/heartbeat_process/__init__.py +0 -0
  210. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/heartbeat_process/heartbeat_config.py +0 -0
  211. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/heartbeat_process/heartbeat_process_manager.py +0 -0
  212. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/heartbeat_process/heartbeat_process_worker.py +0 -0
  213. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/llm/__init__.py +0 -0
  214. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/llm/embedding.py +0 -0
  215. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/llm/get_llm.py +0 -0
  216. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/llm/llm_logger.py +0 -0
  217. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/llm/llm_tokens.py +0 -0
  218. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/llm/llm_with_token_tracking.py +0 -0
  219. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/llm/native_with_fallback_runnable.py +0 -0
  220. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/llm/output_fixing_runnable.py +0 -0
  221. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/llm/struct_token.py +0 -0
  222. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/llm/sy_langfuse.py +0 -0
  223. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/llm/tiktoken_cache/9b5ad71b2ce5302211f9c61530b329a4922fc6a4 +0 -0
  224. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/llm/tiktoken_cache/fb374d419588a4632f3f557e76b4b70aebbca790 +0 -0
  225. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/llm/token_usage_es_service.py +0 -0
  226. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/llm/token_usage_mysql_service.py +0 -0
  227. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/llm/token_utils.py +0 -0
  228. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/llm/usage_token.py +0 -0
  229. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/logging/__init__.py +0 -0
  230. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/logging/async_sql_logger.py +0 -0
  231. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/logging/kafka_log.py +0 -0
  232. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/logging/log_masker.py +0 -0
  233. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/logging/logger_levels.py +0 -0
  234. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/logging/logger_wrapper.py +0 -0
  235. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/logging/process_logger.py +0 -0
  236. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/logging/sql_logger.py +0 -0
  237. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/mcp_server/__init__.py +0 -0
  238. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/mcp_server/server.py +0 -0
  239. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/middleware/__init__.py +0 -0
  240. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/middleware/context.py +0 -0
  241. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/middleware/cors.py +0 -0
  242. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/middleware/docs.py +0 -0
  243. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/middleware/exception.py +0 -0
  244. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/middleware/middleware.py +0 -0
  245. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/middleware/monitor_memory.py +0 -0
  246. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/middleware/mq.py +0 -0
  247. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/middleware/timeout.py +0 -0
  248. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/middleware/token_tracking.py +0 -0
  249. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/middleware/tool_result_truncation.py +0 -0
  250. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/middleware/traceid.py +0 -0
  251. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/models/__init__.py +0 -0
  252. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/models/base_http.py +0 -0
  253. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/models/log.py +0 -0
  254. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/models/mcp_server_config.py +0 -0
  255. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/models/mqlistener_config.py +0 -0
  256. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/models/mqmsg_model.py +0 -0
  257. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/models/mqsend_config.py +0 -0
  258. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/models/sso_user.py +0 -0
  259. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/models/token_usage.py +0 -0
  260. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/models/token_usage_mysql.py +0 -0
  261. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/models/xxljob_handler_config.py +0 -0
  262. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/notice/__init__.py +0 -0
  263. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/notice/uvicorn_monitor.py +0 -0
  264. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/notice/wecom_message.py +0 -0
  265. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/rabbitmq/process_pool_consumer.py +0 -0
  266. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/rabbitmq/rabbitmq_client.py +0 -0
  267. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/rabbitmq/rabbitmq_pool.py +0 -0
  268. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/rabbitmq/rabbitmq_service.py +0 -0
  269. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/rabbitmq/rabbitmq_service_client_manager.py +0 -0
  270. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/rabbitmq/rabbitmq_service_connection_monitor.py +0 -0
  271. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/rabbitmq/rabbitmq_service_consumer_manager.py +0 -0
  272. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/rabbitmq/rabbitmq_service_core.py +0 -0
  273. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/rabbitmq/rabbitmq_service_producer_manager.py +0 -0
  274. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/sentry/__init__.py +0 -0
  275. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/sentry/sy_sentry.py +0 -0
  276. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/services.py +0 -0
  277. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/sse/__init__.py +0 -0
  278. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/sse/event.py +0 -0
  279. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/sse/sse.py +0 -0
  280. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/synacos/__init__.py +0 -0
  281. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/synacos/example.py +0 -0
  282. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/synacos/example2.py +0 -0
  283. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/synacos/feign.py +0 -0
  284. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/synacos/feign_client.py +0 -0
  285. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/synacos/nacos_client_base.py +0 -0
  286. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/synacos/nacos_config_manager.py +0 -0
  287. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/synacos/nacos_heartbeat_manager.py +0 -0
  288. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/synacos/nacos_service.py +0 -0
  289. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/synacos/nacos_service_discovery.py +0 -0
  290. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/synacos/nacos_service_registration.py +0 -0
  291. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/synacos/param.py +0 -0
  292. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/tests/deep_agent_server.py +0 -0
  293. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/tests/test_consistent_hash.py +0 -0
  294. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/tests/test_consume_dedup.py +0 -0
  295. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/tests/test_consumer_loss_rootcause.py +0 -0
  296. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/tests/test_consumer_recovery.py +0 -0
  297. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/tests/test_consumer_recovery_fix.py +0 -0
  298. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/tests/test_consumer_tags_sync.py +0 -0
  299. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/tests/test_deep_agent.py +0 -0
  300. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/tests/test_dynamic_max_tokens.py +0 -0
  301. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/tests/test_email.py +0 -0
  302. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/tests/test_encoding_cache.py +0 -0
  303. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/tests/test_exp_concurrent_migrate.py +0 -0
  304. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/tests/test_exp_delete_queue_with_consumers.py +0 -0
  305. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/tests/test_fault_injection_real.py +0 -0
  306. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/tests/test_fix_verification.py +0 -0
  307. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/tests/test_heartbeat_timeout.py +0 -0
  308. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/tests/test_integration_real_broker.py +0 -0
  309. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/tests/test_mcp_server.py +0 -0
  310. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/tests/test_minimax_reasoning.py +0 -0
  311. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/tests/test_mq.py +0 -0
  312. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/tests/test_mq_config_driven.py +0 -0
  313. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/tests/test_oa_login.py +0 -0
  314. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/tests/test_queue_priority_fallback.py +0 -0
  315. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/tests/test_queue_priority_upgrade_timing.py +0 -0
  316. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/tests/test_real_summarization.py +0 -0
  317. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/tests/test_reconnect_scenarios.py +0 -0
  318. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/tests/test_summarization_config.py +0 -0
  319. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/tests/test_summarization_real.py +0 -0
  320. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/tests/test_summary_leak_e2e.py +0 -0
  321. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/tests/test_upgrade_aio_pika.py +0 -0
  322. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/tests/test_upgrade_langgraph_stream.py +0 -0
  323. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/tests/test_upgrade_verification.py +0 -0
  324. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/tools/__init__.py +0 -0
  325. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/tools/async_utils.py +0 -0
  326. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/tools/docs.py +0 -0
  327. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/tools/env.py +0 -0
  328. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/tools/merge_headers.py +0 -0
  329. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/tools/snowflake.py +0 -0
  330. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/tools/syemail.py +0 -0
  331. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/tools/timing.py +0 -0
  332. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/tools/user_id.py +0 -0
  333. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/xxljob/__init__.py +0 -0
  334. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon/xxljob/xxljob_service.py +0 -0
  335. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon_python_lib.egg-info/SOURCES.txt +0 -0
  336. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon_python_lib.egg-info/dependency_links.txt +0 -0
  337. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon_python_lib.egg-info/entry_points.txt +0 -0
  338. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/src/sycommon_python_lib.egg-info/top_level.txt +0 -0
  339. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/tests/test_acp_tool.py +0 -0
  340. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/tests/test_asyncio_logging.py +0 -0
  341. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/tests/test_config_change_notifier.py +0 -0
  342. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/tests/test_hotreload_snapshot.py +0 -0
  343. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/tests/test_llm_apikey_contextvar.py +0 -0
  344. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/tests/test_log_masker.py +0 -0
  345. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/tests/test_resilient_pg_saver.py +0 -0
  346. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/tests/test_sandbox_path_guard.py +0 -0
  347. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/tests/test_sensitive_guard.py +0 -0
  348. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/tests/test_simple_chat_agent.py +0 -0
  349. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/tests/test_skill_regex_upgrade.py +0 -0
  350. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/tests/test_skill_write_guard.py +0 -0
  351. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/tests/test_streaming_e2e.py +0 -0
  352. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/tests/test_sycli.py +0 -0
  353. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/tests/test_sync_skills_to_sandbox.py +0 -0
  354. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/tests/test_upload_concurrency.py +0 -0
  355. {sycommon_python_lib-0.2.7a56 → sycommon_python_lib-0.2.8a0}/tests/test_upload_e2e_http.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sycommon-python-lib
3
- Version: 0.2.7a56
3
+ Version: 0.2.8a0
4
4
  Summary: Add your description here
5
5
  Requires-Python: >=3.11
6
6
  Description-Content-Type: text/markdown
@@ -9,11 +9,11 @@ Requires-Dist: aiohttp==3.14.3
9
9
  Requires-Dist: aiomysql==0.3.2
10
10
  Requires-Dist: anyio==4.14.2
11
11
  Requires-Dist: decorator==5.3.1
12
- Requires-Dist: deepagents==0.7.1
13
- Requires-Dist: elasticsearch==9.4.1
12
+ Requires-Dist: deepagents==0.7.4
13
+ Requires-Dist: elasticsearch==9.5.0
14
14
  Requires-Dist: fastapi==0.141.1
15
15
  Requires-Dist: jinja2==3.1.6
16
- Requires-Dist: kafka-python==3.0.9
16
+ Requires-Dist: kafka-python==3.0.10
17
17
  Requires-Dist: langchain==1.3.14
18
18
  Requires-Dist: langchain-core==1.5.3
19
19
  Requires-Dist: langchain-openai==1.4.1
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "sycommon-python-lib"
3
- version = "0.2.7a56"
3
+ version = "0.2.8a0"
4
4
  description = "Add your description here"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.11"
@@ -10,11 +10,11 @@ dependencies = [
10
10
  "aiomysql==0.3.2",
11
11
  "anyio==4.14.2",
12
12
  "decorator==5.3.1",
13
- "deepagents==0.7.1",
14
- "elasticsearch==9.4.1",
13
+ "deepagents==0.7.4",
14
+ "elasticsearch==9.5.0",
15
15
  "fastapi==0.141.1",
16
16
  "jinja2==3.1.6",
17
- "kafka-python==3.0.9",
17
+ "kafka-python==3.0.10",
18
18
  "langchain==1.3.14",
19
19
  "langchain-core==1.5.3",
20
20
  "langchain-openai==1.4.1",
@@ -389,13 +389,15 @@ class FileOperationsMixin:
389
389
  )
390
390
  # 对齐 deepagents 0.7.1 ReadResult 分页字段:服务端按行切片后回传
391
391
  # start_line/end_line/total_lines/next_offset,框架据此渲染分页提示。
392
- # no_lines_requested(limit<=0 早退):服务端返回空 content 且无分页字段。
392
+ # no_lines_requested(limit<=0 早退):服务端返回空 content + 该标志;
393
+ # 透传给 ReadResult,让 FilesystemMiddleware 区分「零行窗口」与「空文件」。
393
394
  return ReadResult(
394
395
  file_data=file_data,
395
396
  start_line=result.get("start_line"),
396
397
  end_line=result.get("end_line"),
397
398
  total_lines=result.get("total_lines"),
398
399
  next_offset=result.get("next_offset"),
400
+ no_lines_requested=bool(result.get("no_lines_requested")),
399
401
  )
400
402
  except Exception as e:
401
403
  SYLogger.error(f"[Sandbox] 读取文件异常: {e}")
@@ -471,12 +473,14 @@ class FileOperationsMixin:
471
473
  encoding=encoding,
472
474
  )
473
475
  # 对齐 deepagents 0.7.1 ReadResult 分页字段(与同步 read 一致)。
476
+ # no_lines_requested 透传:区分零行窗口与空文件(见同步版注释)。
474
477
  return ReadResult(
475
478
  file_data=file_data,
476
479
  start_line=result.get("start_line"),
477
480
  end_line=result.get("end_line"),
478
481
  total_lines=result.get("total_lines"),
479
482
  next_offset=result.get("next_offset"),
483
+ no_lines_requested=bool(result.get("no_lines_requested")),
480
484
  )
481
485
  except Exception as e:
482
486
  SYLogger.error(f"[Sandbox] 异步读取文件异常: {e}")
@@ -60,8 +60,8 @@ class FileDownloadResult:
60
60
  from sycommon.logging.kafka_log import SYLogger
61
61
  from sycommon.agent.sandbox.file_ops import FileOperationsMixin, SANDBOX_API_PREFIX
62
62
 
63
+ from deepagents.backends.sandbox import BaseSandbox
63
64
  from deepagents.backends.protocol import (
64
- SandboxBackendProtocol,
65
65
  ExecuteResponse,
66
66
  FileDownloadResponse,
67
67
  FileUploadResponse,
@@ -219,10 +219,24 @@ def filter_instances_by_owner(instances: list, user_id: str, timeout: float = 3.
219
219
  return filtered
220
220
 
221
221
 
222
- class HTTPSandboxBackend(FileOperationsMixin, SandboxBackendProtocol):
222
+ class HTTPSandboxBackend(FileOperationsMixin, BaseSandbox):
223
223
  """
224
224
  通过 HTTP API 连接远程沙箱容器
225
225
 
226
+ 继承 BaseSandbox(而非 SandboxBackendProtocol)以解锁 deepagents
227
+ capture-at-source offload:execute 大输出在沙箱源端截成 head/tail 预览,
228
+ 完整结果落盘 /large_tool_results/<tool_call_id>,模型可经 read_file 翻页恢复,
229
+ 不必重跑命令。落盘目录由 SandboxRecoveryManager/minio_sync cleanup 兜底清理。
230
+ FileOperationsMixin 在 MRO 最前,read/ls/grep/edit/delete 等仍走本类自定义
231
+ 实现(HTTP 远程调用),BaseSandbox 的 shell 默认实现不会被触发。
232
+ """
233
+
234
+ # capture-at-source offload:opt-in,依赖沙箱镜像含 POSIX sh + head/tail/wc/cat。
235
+ # 生产 Linux 沙箱走 bash heredoc 执行命令(见 _build_execute_command),必然满足。
236
+ enable_capture_offload = True
237
+
238
+ """
239
+
226
240
  支持两种模式:
227
241
  1. 直接 URL: 直接指定沙箱服务地址
228
242
  2. Nacos 服务发现: 通过服务名从 Nacos 获取实例(支持自动故障转移)
@@ -340,6 +340,10 @@ _GREP_TIMEOUT = 60
340
340
  # read 文本路径服务端字节上限(对齐 deepagents _READ_COMMAND_TEMPLATE 的
341
341
  # MAX_OUTPUT_BYTES=500KiB):超大文本文件不会把整包塞进 HTTP 响应/内存。
342
342
  _READ_MAX_OUTPUT_BYTES = 500 * 1024
343
+ # read 提前停止后补数 total_lines 的文件大小闸门(对齐 deepagents sandbox.py:499
344
+ # MAX_LINE_COUNT_BYTES=1MiB):超过此大小的文件不数总行数(total_lines=None),
345
+ # 避免 GB 级文件的逐行计数把 read 拖成慢操作。
346
+ _READ_TOTAL_LINE_MAX_BYTES = 1024 * 1024
343
347
  # 默认工作目录配置
344
348
  # - Linux: /data/sycommon_sandbox (固定路径,自动创建)
345
349
  # - macOS/Windows: 使用系统临时目录
@@ -1027,8 +1031,10 @@ def setup_sandbox_handler(app: FastAPI, config: dict = None):
1027
1031
 
1028
1032
  # limit<=0:协议 no_lines_requested —— 不读文件,返回空内容 + 标志位,
1029
1033
  # 不带任何分页字段(客户端填 ReadResult.no_lines_requested=True)。
1034
+ # 对齐 deepagents _build_read_cmd 的 limit<=0 早退分支。区别于空文件
1035
+ # (空文件走上面的 "File exists but has empty contents" 提示)。
1030
1036
  if limit is not None and limit <= 0:
1031
- return ReadResponse(content="", error=None, encoding="utf-8")
1037
+ return ReadResponse(content="", error=None, encoding="utf-8", no_lines_requested=True)
1032
1038
 
1033
1039
  lines = []
1034
1040
  lines_read = 0
@@ -1082,12 +1088,18 @@ def setup_sandbox_handler(app: FastAPI, config: dict = None):
1082
1088
  next_offset = None
1083
1089
  else:
1084
1090
  # 提前停止(limit 到顶 / 字节截断):需要 total_lines 才能算「剩余」。
1085
- # 大文件全量计数代价高,这里只在截断时补一次剩余行数扫描
1086
- # (对齐 deepagents「total_lines 已知时才报」的做法)。
1087
- try:
1088
- with open(file_path, 'r', encoding='utf-8', newline=None) as f:
1089
- total_lines = sum(1 for _ in f)
1090
- except OSError:
1091
+ # 大文件全量计数代价高——先比 st_size 与 _READ_TOTAL_LINE_MAX_BYTES
1092
+ # (对齐 deepagents sandbox.py:499 的 MAX_LINE_COUNT_BYTES=1MiB 闸门),
1093
+ # 超过则不数(返回 None,next_offset 退化为 end_line),避免无界扫描
1094
+ # read 变成对 GB 级文件的逐行计数慢操作。
1095
+ file_size = os.path.getsize(file_path)
1096
+ if file_size <= _READ_TOTAL_LINE_MAX_BYTES:
1097
+ try:
1098
+ with open(file_path, 'r', encoding='utf-8', newline=None) as f:
1099
+ total_lines = sum(1 for _ in f)
1100
+ except OSError:
1101
+ total_lines = None
1102
+ else:
1091
1103
  total_lines = None
1092
1104
  # next_offset = end_line(0-indexed 下一行 = 1-indexed 末行号),
1093
1105
  # 仅当确实还有后续行时设置;否则视为读到末尾。
@@ -1724,19 +1736,65 @@ def setup_sandbox_handler(app: FastAPI, config: dict = None):
1724
1736
  grep_opts = "-rHnFZ" if use_null_separator else "-rHnF"
1725
1737
 
1726
1738
  # 安全处理 glob_pattern,使用 shlex.quote 防止命令注入
1727
- glob_pattern = f"--include={shlex.quote(req.glob)}" if req.glob else ""
1728
1739
  pattern_escaped = shlex.quote(req.pattern)
1729
1740
 
1730
- # 注意:不再用 2>/dev/null || true,以便捕获 stderr 用于错误诊断
1731
- cmd = f"grep {grep_opts} {glob_pattern} -e {pattern_escaped} {quoted_path}"
1741
+ # glob 含 '/'(如 src/**/*.py)时,GNU grep --include 只匹配 basename,
1742
+ # 会静默返回 0 条(对齐 deepagents sandbox.py:684 _build_grep_cmd 的判定)。
1743
+ # 这种路径 glob 改走 Python glob 预筛文件清单 + grep -F 逐文件/批量,
1744
+ # 避免「带路径 glob 搜不到东西」的隐蔽 bug。
1745
+ path_glob = req.glob
1746
+ use_path_glob = bool(path_glob and "/" in path_glob)
1747
+ if not use_path_glob:
1748
+ glob_pattern = f"--include={shlex.quote(req.glob)}" if req.glob else ""
1749
+ # 注意:不再用 2>/dev/null || true,以便捕获 stderr 用于错误诊断
1750
+ cmd = f"grep {grep_opts} {glob_pattern} -e {pattern_escaped} {quoted_path}"
1751
+ else:
1752
+ glob_pattern = "" # 不用 --include;文件清单由 Python glob 预筛后喂给 grep
1753
+
1732
1754
  # 对齐 deepagents 0.7.1 max_count:服务端用 head 早停,多取 1 条用于判断是否截断。
1733
1755
  # (grep -r 没有真正的全局计数上限,head -n N+1 截 stdout 后,客户端按 N 裁剪、
1734
1756
  # 超过即 truncated=True。与 deepagents BaseSandbox._build_grep_cmd 同款思路。)
1735
1757
  max_count = req.max_count
1736
- if max_count is not None and max_count >= 0:
1758
+ if not use_path_glob and max_count is not None and max_count >= 0:
1737
1759
  # || true 兜底 SIGPIPE(head 读够后关闭管道,grep 收到 SIGPIPE 退出码非 0)
1738
1760
  cmd = f"{cmd} | head -n {int(max_count) + 1} || true"
1739
1761
 
1762
+ # 含路径 glob 的分支:Python glob 预筛出匹配文件清单(仅文件,递归),
1763
+ # 经 xargs 批量喂给 grep -F。沿用 -Z/-Hn 与正文相同的 NUL/冒号解析,故
1764
+ # 下游 _parse_grep_results 无需改动。文件清单为空时直接返回 0 条,避免起
1765
+ # `grep -e pat`(无文件参数)误把 stdin 当搜索源。
1766
+ def _resolve_path_glob_files():
1767
+ import glob as glob_module
1768
+ full_pattern = os.path.join(search_path, path_glob)
1769
+ try:
1770
+ files = sorted(glob_module.glob(full_pattern, recursive=True))
1771
+ except (FileNotFoundError, NotADirectoryError, PermissionError) as e:
1772
+ SYLogger.warning(f"[Sandbox Server] grep 路径 glob 异常: {e}")
1773
+ return []
1774
+ workspace_resolved_g = os.path.realpath(workspace)
1775
+ safe = []
1776
+ for m in files:
1777
+ if os.path.isdir(m):
1778
+ continue # grep 按文件搜,目录跳过
1779
+ try:
1780
+ if not _is_path_within(m, workspace_resolved_g):
1781
+ continue
1782
+ except OSError:
1783
+ continue
1784
+ safe.append(m)
1785
+ return safe
1786
+
1787
+ if use_path_glob:
1788
+ path_glob_files = await asyncio.to_thread(_resolve_path_glob_files)
1789
+ if not path_glob_files:
1790
+ return GrepResponse(matches=[])
1791
+ # xargs -0:文件名以 NUL 分隔喂入,文件名含空格/引号/换行也安全。
1792
+ # find ... -print0 | grep -FZne pattern --files-from=... 也行,但 xargs 最 portable。
1793
+ files_argv = " ".join(shlex.quote(f) for f in path_glob_files)
1794
+ # 不加 -r(已显式给文件清单,无需递归);保留 -H(始终带文件名) -n(行号) -F(字面量) -Z(NUL)。
1795
+ path_glob_grep_opts = "-HnFZ" if use_null_separator else "-HnF"
1796
+ cmd = f"printf '%s\\0' {files_argv} | xargs -0 grep {path_glob_grep_opts} -e {pattern_escaped}"
1797
+
1740
1798
  # 使用 asyncio.create_subprocess_shell 异步执行
1741
1799
  proc = await asyncio.create_subprocess_shell(
1742
1800
  cmd,
@@ -1831,6 +1889,7 @@ def setup_sandbox_handler(app: FastAPI, config: dict = None):
1831
1889
 
1832
1890
  matches = await asyncio.to_thread(_parse_grep_results)
1833
1891
  # 对齐 deepagents 0.7.1:超出 max_count 即置 truncated(多取的 1 条在这里裁掉)。
1892
+ # 路径 glob 分支没在服务端 head 早停(直接 grep 文件清单),这里统一兜底裁剪。
1834
1893
  truncated = False
1835
1894
  if max_count is not None and len(matches) > max_count:
1836
1895
  matches = matches[:max_count]
@@ -143,6 +143,11 @@ class ReadResponse(BaseModel):
143
143
  end_line: Optional[int] = None
144
144
  total_lines: Optional[int] = None
145
145
  next_offset: Optional[int] = None
146
+ # limit<=0 早退标志(对齐 deepagents ReadResult.no_lines_requested):
147
+ # True 表示「文件未检视、零行窗口」,与「空文件」区分开。客户端据此
148
+ # 填 ReadResult.no_lines_requested,让 FilesystemMiddleware 给出与框架
149
+ # 合成实现一致的分页提示(NO_LINES_REQUESTED_WARNING)而非空文件提示。
150
+ no_lines_requested: bool = False
146
151
 
147
152
 
148
153
  class WriteRequest(BaseModel):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sycommon-python-lib
3
- Version: 0.2.7a56
3
+ Version: 0.2.8a0
4
4
  Summary: Add your description here
5
5
  Requires-Python: >=3.11
6
6
  Description-Content-Type: text/markdown
@@ -9,11 +9,11 @@ Requires-Dist: aiohttp==3.14.3
9
9
  Requires-Dist: aiomysql==0.3.2
10
10
  Requires-Dist: anyio==4.14.2
11
11
  Requires-Dist: decorator==5.3.1
12
- Requires-Dist: deepagents==0.7.1
13
- Requires-Dist: elasticsearch==9.4.1
12
+ Requires-Dist: deepagents==0.7.4
13
+ Requires-Dist: elasticsearch==9.5.0
14
14
  Requires-Dist: fastapi==0.141.1
15
15
  Requires-Dist: jinja2==3.1.6
16
- Requires-Dist: kafka-python==3.0.9
16
+ Requires-Dist: kafka-python==3.0.10
17
17
  Requires-Dist: langchain==1.3.14
18
18
  Requires-Dist: langchain-core==1.5.3
19
19
  Requires-Dist: langchain-openai==1.4.1
@@ -3,11 +3,11 @@ aiohttp==3.14.3
3
3
  aiomysql==0.3.2
4
4
  anyio==4.14.2
5
5
  decorator==5.3.1
6
- deepagents==0.7.1
7
- elasticsearch==9.4.1
6
+ deepagents==0.7.4
7
+ elasticsearch==9.5.0
8
8
  fastapi==0.141.1
9
9
  jinja2==3.1.6
10
- kafka-python==3.0.9
10
+ kafka-python==3.0.10
11
11
  langchain==1.3.14
12
12
  langchain-core==1.5.3
13
13
  langchain-openai==1.4.1