sycommon-python-lib 0.2.5a36__tar.gz → 0.2.5a37__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 (296) hide show
  1. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/PKG-INFO +1 -1
  2. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/pyproject.toml +1 -1
  3. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/agent/deep_agent.py +159 -100
  4. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon_python_lib.egg-info/PKG-INFO +1 -1
  5. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/README.md +0 -0
  6. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/setup.cfg +0 -0
  7. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/command/__init__.py +0 -0
  8. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/command/cli.py +0 -0
  9. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/command/core/__init__.py +0 -0
  10. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/command/core/console.py +0 -0
  11. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/command/core/models.py +0 -0
  12. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/command/core/project.py +0 -0
  13. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/command/core/utils.py +0 -0
  14. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/command/templates/__init__.py +0 -0
  15. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/command/templates/agent/README.md.tpl +0 -0
  16. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/command/templates/agent/__init__.py +0 -0
  17. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/command/templates/agent/agent/__init__.py.tpl +0 -0
  18. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/command/templates/agent/agent/main_agent.py.tpl +0 -0
  19. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/command/templates/agent/agent/nodes/__init__.py.tpl +0 -0
  20. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/command/templates/agent/agent/nodes/example_node.py.tpl +0 -0
  21. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/command/templates/agent/agent/states/__init__.py.tpl +0 -0
  22. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/command/templates/agent/agent/states/agent_state.py.tpl +0 -0
  23. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/command/templates/agent/api/__init__.py.tpl +0 -0
  24. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/command/templates/agent/api/query.py.tpl +0 -0
  25. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/command/templates/agent/api/sse/__init__.py.tpl +0 -0
  26. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/command/templates/agent/api/sse/agent.py.tpl +0 -0
  27. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/command/templates/agent/app.py.tpl +0 -0
  28. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/command/templates/agent/client/__init__.py.tpl +0 -0
  29. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/command/templates/agent/db/__init__.py.tpl +0 -0
  30. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/command/templates/agent/db/model/__init__.py.tpl +0 -0
  31. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/command/templates/agent/db/model/entity.py.tpl +0 -0
  32. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/command/templates/agent/db/service.py.tpl +0 -0
  33. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/command/templates/agent/model/__init__.py.tpl +0 -0
  34. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/command/templates/agent/model/parse.py.tpl +0 -0
  35. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/command/templates/agent/tools/__init__.py.tpl +0 -0
  36. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/command/templates/agent/tools/mq.py.tpl +0 -0
  37. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/command/templates/base/.env.tpl +0 -0
  38. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/command/templates/base/.gitignore.tpl +0 -0
  39. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/command/templates/base/Dockerfile.tpl +0 -0
  40. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/command/templates/base/README.md.tpl +0 -0
  41. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/command/templates/base/__init__.py +0 -0
  42. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/command/templates/base/app.py.tpl +0 -0
  43. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/command/templates/base/app.yaml.tpl +0 -0
  44. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/command/templates/base/client/FileServiceClient.py.tpl +0 -0
  45. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/command/templates/base/client/__init__.py.tpl +0 -0
  46. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/command/templates/base/model/__init__.py.tpl +0 -0
  47. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/command/templates/base/model/file_info.py.tpl +0 -0
  48. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/command/templates/base/requirements.txt.tpl +0 -0
  49. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/command/templates/cli/README.md.tpl +0 -0
  50. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/command/templates/cli/__init__.py +0 -0
  51. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/command/templates/cli/app.py.tpl +0 -0
  52. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/command/templates/cli/commands/__init__.py.tpl +0 -0
  53. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/command/templates/cli/commands/hello.py.tpl +0 -0
  54. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/command/templates/cli/pyproject.toml.tpl +0 -0
  55. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/command/templates/cli/tools/__init__.py.tpl +0 -0
  56. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/command/templates/web/README.md.tpl +0 -0
  57. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/command/templates/web/__init__.py +0 -0
  58. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/command/templates/web/api/__init__.py.tpl +0 -0
  59. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/command/templates/web/api/echo.py.tpl +0 -0
  60. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/command/templates/web/api/sse/__init__.py.tpl +0 -0
  61. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/command/templates/web/api/sse/echo.py.tpl +0 -0
  62. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/command/templates/web/app.py.tpl +0 -0
  63. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/command/templates/web/client/__init__.py.tpl +0 -0
  64. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/command/templates/web/model/__init__.py.tpl +0 -0
  65. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/command/templates/web/tools/__init__.py.tpl +0 -0
  66. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/command/templates/web/tools/mq.py.tpl +0 -0
  67. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/nexus/__init__.py +0 -0
  68. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycli/__init__.py +0 -0
  69. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycli/__main__.py +0 -0
  70. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycli/agents/__init__.py +0 -0
  71. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycli/agents/factory.py +0 -0
  72. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycli/agents/prompts.py +0 -0
  73. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycli/cdp/__init__.py +0 -0
  74. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycli/cdp/browser.py +0 -0
  75. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycli/cdp/capabilities/__init__.py +0 -0
  76. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycli/cdp/capabilities/console.py +0 -0
  77. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycli/cdp/capabilities/dom.py +0 -0
  78. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycli/cdp/capabilities/network.py +0 -0
  79. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycli/cdp/capabilities/page_errors.py +0 -0
  80. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycli/cdp/capabilities/performance.py +0 -0
  81. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycli/cdp/capabilities/screenshot.py +0 -0
  82. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycli/cdp/client.py +0 -0
  83. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycli/cdp/protocol.py +0 -0
  84. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycli/cdp/repl.py +0 -0
  85. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycli/cli.py +0 -0
  86. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycli/commands/__init__.py +0 -0
  87. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycli/commands/cdp_cmd.py +0 -0
  88. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycli/commands/chat_cmd.py +0 -0
  89. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycli/commands/create_cmd.py +0 -0
  90. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycli/commands/evaluate_cmd.py +0 -0
  91. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycli/commands/init_cmd.py +0 -0
  92. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycli/commands/memory_cmd.py +0 -0
  93. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycli/commands/resume_cmd.py +0 -0
  94. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycli/commands/rollback_cmd.py +0 -0
  95. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycli/commands/run_cmd.py +0 -0
  96. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycli/core/__init__.py +0 -0
  97. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycli/core/backend.py +0 -0
  98. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycli/core/config.py +0 -0
  99. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycli/core/display.py +0 -0
  100. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycli/core/git_integration.py +0 -0
  101. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycli/core/llm.py +0 -0
  102. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycli/core/state.py +0 -0
  103. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycli/evaluate/__init__.py +0 -0
  104. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycli/evaluate/api_evaluator.py +0 -0
  105. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycli/memory/__init__.py +0 -0
  106. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycli/memory/compressor.py +0 -0
  107. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycli/memory/full.py +0 -0
  108. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycli/memory/hot.py +0 -0
  109. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycli/memory/manager.py +0 -0
  110. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycli/memory/warm.py +0 -0
  111. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycli/mode/__init__.py +0 -0
  112. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycli/mode/create.py +0 -0
  113. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycli/mode/optimize.py +0 -0
  114. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycli/models/__init__.py +0 -0
  115. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycli/models/config_models.py +0 -0
  116. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycli/rl/__init__.py +0 -0
  117. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycli/rl/baseline_tests.py +0 -0
  118. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycli/rl/checkpoint.py +0 -0
  119. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycli/rl/convergence.py +0 -0
  120. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycli/rl/diagnosis.py +0 -0
  121. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycli/rl/engine.py +0 -0
  122. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycli/rl/environment.py +0 -0
  123. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycli/rl/experience.py +0 -0
  124. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycli/rl/harness_prompts.py +0 -0
  125. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycli/rl/history.py +0 -0
  126. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycli/rl/optimization_logger.py +0 -0
  127. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycli/rl/pre_validation.py +0 -0
  128. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycli/rl/reward.py +0 -0
  129. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycli/rl/strategy_bandit.py +0 -0
  130. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycli/rl/strategy_generator.py +0 -0
  131. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycli/rl/strategy_prompts.py +0 -0
  132. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycli/skills/__init__.py +0 -0
  133. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/__init__.py +0 -0
  134. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/agent/__init__.py +0 -0
  135. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/agent/agent_manager.py +0 -0
  136. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/agent/chat_events.py +0 -0
  137. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/agent/mcp/__init__.py +0 -0
  138. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/agent/mcp/models.py +0 -0
  139. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/agent/mcp/tool_loader.py +0 -0
  140. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/agent/multi_agent_team.py +0 -0
  141. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/agent/sandbox/__init__.py +0 -0
  142. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/agent/sandbox/file_ops.py +0 -0
  143. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/agent/sandbox/http_sandbox_backend.py +0 -0
  144. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/agent/sandbox/minio_sync.py +0 -0
  145. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/agent/sandbox/sandbox_pool.py +0 -0
  146. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/agent/sandbox/sandbox_recovery.py +0 -0
  147. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/agent/sandbox/session.py +0 -0
  148. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/agent/summarization_utils.py +0 -0
  149. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/auth/__init__.py +0 -0
  150. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/auth/ldap_service.py +0 -0
  151. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/auth/oa_cache.py +0 -0
  152. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/auth/oa_crypto.py +0 -0
  153. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/auth/oa_service.py +0 -0
  154. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/auth/wecom_ldap_service.py +0 -0
  155. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/config/Config.py +0 -0
  156. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/config/DatabaseConfig.py +0 -0
  157. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/config/ElasticsearchConfig.py +0 -0
  158. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/config/EmbeddingConfig.py +0 -0
  159. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/config/LLMConfig.py +0 -0
  160. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/config/LangfuseConfig.py +0 -0
  161. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/config/MQConfig.py +0 -0
  162. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/config/PgConfig.py +0 -0
  163. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/config/RedisConfig.py +0 -0
  164. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/config/RerankerConfig.py +0 -0
  165. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/config/SentryConfig.py +0 -0
  166. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/config/XxlJobConfig.py +0 -0
  167. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/config/__init__.py +0 -0
  168. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/database/async_base_db_service.py +0 -0
  169. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/database/async_database_service.py +0 -0
  170. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/database/base_db_service.py +0 -0
  171. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/database/database_service.py +0 -0
  172. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/database/elasticsearch_service.py +0 -0
  173. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/database/pg_checkpoint_service.py +0 -0
  174. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/database/redis_service.py +0 -0
  175. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/database/token_usage_db_service.py +0 -0
  176. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/health/__init__.py +0 -0
  177. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/health/health_check.py +0 -0
  178. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/health/metrics.py +0 -0
  179. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/health/ping.py +0 -0
  180. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/heartbeat_process/__init__.py +0 -0
  181. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/heartbeat_process/heartbeat_config.py +0 -0
  182. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/heartbeat_process/heartbeat_process_manager.py +0 -0
  183. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/heartbeat_process/heartbeat_process_worker.py +0 -0
  184. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/llm/__init__.py +0 -0
  185. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/llm/embedding.py +0 -0
  186. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/llm/get_llm.py +0 -0
  187. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/llm/llm_logger.py +0 -0
  188. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/llm/llm_tokens.py +0 -0
  189. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/llm/llm_with_token_tracking.py +0 -0
  190. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/llm/native_with_fallback_runnable.py +0 -0
  191. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/llm/output_fixing_runnable.py +0 -0
  192. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/llm/struct_token.py +0 -0
  193. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/llm/sy_langfuse.py +0 -0
  194. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/llm/tiktoken_cache/9b5ad71b2ce5302211f9c61530b329a4922fc6a4 +0 -0
  195. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/llm/tiktoken_cache/fb374d419588a4632f3f557e76b4b70aebbca790 +0 -0
  196. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/llm/token_usage_es_service.py +0 -0
  197. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/llm/token_usage_mysql_service.py +0 -0
  198. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/llm/token_utils.py +0 -0
  199. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/llm/usage_token.py +0 -0
  200. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/logging/__init__.py +0 -0
  201. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/logging/async_sql_logger.py +0 -0
  202. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/logging/kafka_log.py +0 -0
  203. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/logging/logger_levels.py +0 -0
  204. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/logging/logger_wrapper.py +0 -0
  205. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/logging/process_logger.py +0 -0
  206. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/logging/sql_logger.py +0 -0
  207. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/mcp_server/__init__.py +0 -0
  208. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/mcp_server/server.py +0 -0
  209. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/middleware/__init__.py +0 -0
  210. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/middleware/context.py +0 -0
  211. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/middleware/cors.py +0 -0
  212. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/middleware/docs.py +0 -0
  213. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/middleware/exception.py +0 -0
  214. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/middleware/middleware.py +0 -0
  215. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/middleware/monitor_memory.py +0 -0
  216. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/middleware/mq.py +0 -0
  217. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/middleware/sandbox.py +0 -0
  218. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/middleware/timeout.py +0 -0
  219. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/middleware/token_tracking.py +0 -0
  220. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/middleware/tool_result_truncation.py +0 -0
  221. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/middleware/traceid.py +0 -0
  222. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/models/__init__.py +0 -0
  223. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/models/base_http.py +0 -0
  224. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/models/log.py +0 -0
  225. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/models/mcp_server_config.py +0 -0
  226. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/models/mqlistener_config.py +0 -0
  227. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/models/mqmsg_model.py +0 -0
  228. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/models/mqsend_config.py +0 -0
  229. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/models/sandbox.py +0 -0
  230. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/models/sso_user.py +0 -0
  231. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/models/token_usage.py +0 -0
  232. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/models/token_usage_mysql.py +0 -0
  233. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/models/xxljob_handler_config.py +0 -0
  234. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/notice/__init__.py +0 -0
  235. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/notice/uvicorn_monitor.py +0 -0
  236. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/notice/wecom_message.py +0 -0
  237. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/rabbitmq/process_pool_consumer.py +0 -0
  238. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/rabbitmq/rabbitmq_client.py +0 -0
  239. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/rabbitmq/rabbitmq_pool.py +0 -0
  240. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/rabbitmq/rabbitmq_service.py +0 -0
  241. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/rabbitmq/rabbitmq_service_client_manager.py +0 -0
  242. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/rabbitmq/rabbitmq_service_connection_monitor.py +0 -0
  243. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/rabbitmq/rabbitmq_service_consumer_manager.py +0 -0
  244. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/rabbitmq/rabbitmq_service_core.py +0 -0
  245. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/rabbitmq/rabbitmq_service_producer_manager.py +0 -0
  246. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/sentry/__init__.py +0 -0
  247. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/sentry/sy_sentry.py +0 -0
  248. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/services.py +0 -0
  249. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/sse/__init__.py +0 -0
  250. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/sse/event.py +0 -0
  251. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/sse/sse.py +0 -0
  252. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/synacos/__init__.py +0 -0
  253. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/synacos/example.py +0 -0
  254. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/synacos/example2.py +0 -0
  255. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/synacos/feign.py +0 -0
  256. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/synacos/feign_client.py +0 -0
  257. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/synacos/nacos_client_base.py +0 -0
  258. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/synacos/nacos_config_manager.py +0 -0
  259. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/synacos/nacos_heartbeat_manager.py +0 -0
  260. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/synacos/nacos_service.py +0 -0
  261. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/synacos/nacos_service_discovery.py +0 -0
  262. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/synacos/nacos_service_registration.py +0 -0
  263. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/synacos/param.py +0 -0
  264. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/tests/deep_agent_server.py +0 -0
  265. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/tests/test_consumer_loss_rootcause.py +0 -0
  266. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/tests/test_consumer_recovery.py +0 -0
  267. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/tests/test_deep_agent.py +0 -0
  268. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/tests/test_dynamic_max_tokens.py +0 -0
  269. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/tests/test_email.py +0 -0
  270. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/tests/test_encoding_cache.py +0 -0
  271. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/tests/test_fix_verification.py +0 -0
  272. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/tests/test_mcp_server.py +0 -0
  273. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/tests/test_minimax_reasoning.py +0 -0
  274. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/tests/test_mq.py +0 -0
  275. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/tests/test_oa_login.py +0 -0
  276. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/tests/test_real_summarization.py +0 -0
  277. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/tests/test_summarization_config.py +0 -0
  278. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/tests/test_summarization_real.py +0 -0
  279. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/tests/test_summary_leak_e2e.py +0 -0
  280. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/tools/__init__.py +0 -0
  281. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/tools/async_utils.py +0 -0
  282. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/tools/docs.py +0 -0
  283. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/tools/env.py +0 -0
  284. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/tools/merge_headers.py +0 -0
  285. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/tools/snowflake.py +0 -0
  286. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/tools/syemail.py +0 -0
  287. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/tools/timing.py +0 -0
  288. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/xxljob/__init__.py +0 -0
  289. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon/xxljob/xxljob_service.py +0 -0
  290. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon_python_lib.egg-info/SOURCES.txt +0 -0
  291. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon_python_lib.egg-info/dependency_links.txt +0 -0
  292. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon_python_lib.egg-info/entry_points.txt +0 -0
  293. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon_python_lib.egg-info/requires.txt +0 -0
  294. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/src/sycommon_python_lib.egg-info/top_level.txt +0 -0
  295. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/tests/test_asyncio_logging.py +0 -0
  296. {sycommon_python_lib-0.2.5a36 → sycommon_python_lib-0.2.5a37}/tests/test_sycli.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sycommon-python-lib
3
- Version: 0.2.5a36
3
+ Version: 0.2.5a37
4
4
  Summary: Add your description here
5
5
  Requires-Python: >=3.11
6
6
  Description-Content-Type: text/markdown
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "sycommon-python-lib"
3
- version = "0.2.5a36"
3
+ version = "0.2.5a37"
4
4
  description = "Add your description here"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.11"
@@ -104,27 +104,35 @@ def _patch_agent_streaming(agent):
104
104
  from langchain_core.messages import AIMessageChunk as _AIC, AIMessage as _AIM
105
105
  from langchain_core.runnables.config import var_child_runnable_config
106
106
 
107
- print(f"[StreamingPatch] agent.nodes: {list(agent.nodes.keys())}", flush=True)
107
+ print(
108
+ f"[StreamingPatch] agent.nodes: {list(agent.nodes.keys())}", flush=True)
108
109
  node = agent.nodes.get("model")
109
110
  if node is None:
110
111
  print("[StreamingPatch] model node not found, skip", flush=True)
111
- SYLogger.warning("[DeepAgent] model node not found, skip streaming patch")
112
+ SYLogger.warning(
113
+ "[DeepAgent] model node not found, skip streaming patch")
112
114
  return
113
115
 
114
116
  inner = node.node # RunnableSeq
115
- print(f"[StreamingPatch] inner type: {type(inner).__name__}", flush=True)
117
+ print(
118
+ f"[StreamingPatch] inner type: {type(inner).__name__}", flush=True)
116
119
  if not hasattr(inner, 'steps') or not inner.steps:
117
120
  print(f"[StreamingPatch] no steps, inner={inner}", flush=True)
118
- SYLogger.warning("[DeepAgent] model node has no steps, skip streaming patch")
121
+ SYLogger.warning(
122
+ "[DeepAgent] model node has no steps, skip streaming patch")
119
123
  return
120
124
 
121
- step0 = inner.steps[0] # RunnableCallable(trace=False, afunc=amodel_node)
122
- print(f"[StreamingPatch] step0 type: {type(step0).__name__}, trace={getattr(step0, 'trace', 'N/A')}", flush=True)
125
+ # RunnableCallable(trace=False, afunc=amodel_node)
126
+ step0 = inner.steps[0]
127
+ print(
128
+ f"[StreamingPatch] step0 type: {type(step0).__name__}, trace={getattr(step0, 'trace', 'N/A')}", flush=True)
123
129
  afunc = getattr(step0, "afunc", None) # amodel_node
124
130
  if afunc is None or afunc.__closure__ is None:
125
- SYLogger.warning("[DeepAgent] amodel_node afunc/closure 缺失, skip streaming patch")
131
+ SYLogger.warning(
132
+ "[DeepAgent] amodel_node afunc/closure 缺失, skip streaming patch")
126
133
  return
127
- print(f"[StreamingPatch] afunc: {afunc.__name__}, freevars={afunc.__code__.co_freevars}", flush=True)
134
+ print(
135
+ f"[StreamingPatch] afunc: {afunc.__name__}, freevars={afunc.__code__.co_freevars}", flush=True)
128
136
 
129
137
  # ---- 按自由变量名定位 cell(不依赖固定索引)----
130
138
  def _cell_by_name(fn, name):
@@ -192,7 +200,8 @@ def _patch_agent_streaming(agent):
192
200
  f"[StreamingPatch] clamp max_tokens: "
193
201
  f"context={max_tokens_limit}, max_output={max_output} → {dynamic_max}")
194
202
  except Exception as e:
195
- SYLogger.warning(f"[StreamingPatch] clamp max_tokens failed: {e}")
203
+ SYLogger.warning(
204
+ f"[StreamingPatch] clamp max_tokens failed: {e}")
196
205
 
197
206
  async def _patched_execute_model_async(request):
198
207
  """替代 factory._execute_model_async: 用 astream + config 实现流式回调。"""
@@ -219,7 +228,8 @@ def _patch_agent_streaming(agent):
219
228
  _summary_text = re.sub(
220
229
  r'</?internal_context_data>', '', _raw, flags=re.DOTALL
221
230
  ).strip()
222
- SYLogger.debug("[DeepAgent] 摘要已从 HumanMessage 提取,将注入 system_message")
231
+ SYLogger.debug(
232
+ "[DeepAgent] 摘要已从 HumanMessage 提取,将注入 system_message")
223
233
  else:
224
234
  _filtered_messages.append(_msg)
225
235
  messages = _filtered_messages
@@ -233,7 +243,8 @@ def _patch_agent_streaming(agent):
233
243
  f"{_summary_text}\n"
234
244
  "</system_context>"
235
245
  )
236
- _new_sys = append_to_system_message(request.system_message, _summary_directive)
246
+ _new_sys = append_to_system_message(
247
+ request.system_message, _summary_directive)
237
248
  request = request.override(system_message=_new_sys)
238
249
 
239
250
  if request.system_message:
@@ -254,7 +265,8 @@ def _patch_agent_streaming(agent):
254
265
 
255
266
  if not chunks:
256
267
  # astream 无产出时降级到原始 ainvoke(不走流式)
257
- SYLogger.warning("[StreamingPatch] astream returned empty, fallback to ainvoke")
268
+ SYLogger.warning(
269
+ "[StreamingPatch] astream returned empty, fallback to ainvoke")
258
270
  output = await model_.ainvoke(messages, config=config)
259
271
  else:
260
272
  generation = chunks[0]
@@ -268,8 +280,10 @@ def _patch_agent_streaming(agent):
268
280
  content=ai_message.content,
269
281
  additional_kwargs=ai_message.additional_kwargs,
270
282
  tool_calls=ai_message.tool_calls,
271
- usage_metadata=getattr(ai_message, "usage_metadata", None),
272
- response_metadata=getattr(ai_message, "response_metadata", {}),
283
+ usage_metadata=getattr(
284
+ ai_message, "usage_metadata", None),
285
+ response_metadata=getattr(
286
+ ai_message, "response_metadata", {}),
273
287
  id=ai_message.id,
274
288
  )
275
289
  output = ai_message
@@ -277,7 +291,8 @@ def _patch_agent_streaming(agent):
277
291
  if _name:
278
292
  output.name = _name
279
293
 
280
- handled_output = _handle_model_output(output, effective_response_format)
294
+ handled_output = _handle_model_output(
295
+ output, effective_response_format)
281
296
  return ModelResponse(
282
297
  result=handled_output["messages"],
283
298
  structured_response=handled_output.get("structured_response"),
@@ -289,7 +304,6 @@ def _patch_agent_streaming(agent):
289
304
  f"[DeepAgent] _execute_model_async patched (astream + config) "
290
305
  f"| langchain={_cur.get('langchain')} core={_cur.get('langchain_core')}")
291
306
 
292
-
293
307
  except Exception as e:
294
308
  SYLogger.warning(f"[DeepAgent] streaming patch failed: {e}")
295
309
 
@@ -437,7 +451,8 @@ class DeepAgent:
437
451
  input_state = {"messages": [HumanMessage(content=message)]}
438
452
  if rubric:
439
453
  input_state["rubric"] = rubric
440
- print(f"[DeepAgent] chat() starting stream, message={repr(message[:80])}", flush=True)
454
+ print(
455
+ f"[DeepAgent] chat() starting stream, message={repr(message[:80])}", flush=True)
441
456
  async for chunk in self._astream_with_retry(
442
457
  input_state,
443
458
  max_retries=3,
@@ -457,9 +472,12 @@ class DeepAgent:
457
472
  _meta = chunk[1]
458
473
  _msg_type = type(_msg).__name__
459
474
  _content = repr(str(getattr(_msg, 'content', ''))[:80])
460
- _node = _meta.get('langgraph_node', '?') if isinstance(_meta, dict) else '?'
461
- _step = _meta.get('langgraph_step', '?') if isinstance(_meta, dict) else '?'
462
- print(f"[DeepAgent] 2tuple: ns={_ns} msg={_msg_type} node={_node} step={_step} content={_content}", flush=True)
475
+ _node = _meta.get('langgraph_node', '?') if isinstance(
476
+ _meta, dict) else '?'
477
+ _step = _meta.get('langgraph_step', '?') if isinstance(
478
+ _meta, dict) else '?'
479
+ print(
480
+ f"[DeepAgent] 2tuple: ns={_ns} msg={_msg_type} node={_node} step={_step} content={_content}", flush=True)
463
481
  elif isinstance(chunk, tuple) and _chunk_len == 3:
464
482
  namespace_p, _tag_p, payload_p = chunk
465
483
  if isinstance(payload_p, tuple) and len(payload_p) == 2:
@@ -467,13 +485,18 @@ class DeepAgent:
467
485
  _meta = payload_p[1]
468
486
  _msg_type = type(_msg).__name__
469
487
  _content = repr(str(getattr(_msg, 'content', ''))[:80])
470
- _node = _meta.get('langgraph_node', '?') if isinstance(_meta, dict) else '?'
471
- _step = _meta.get('langgraph_step', '?') if isinstance(_meta, dict) else '?'
472
- print(f"[DeepAgent] 3tuple: ns={repr(namespace_p)[:30]} msg={_msg_type} node={_node} step={_step} content={_content}", flush=True)
488
+ _node = _meta.get('langgraph_node', '?') if isinstance(
489
+ _meta, dict) else '?'
490
+ _step = _meta.get('langgraph_step', '?') if isinstance(
491
+ _meta, dict) else '?'
492
+ print(
493
+ f"[DeepAgent] 3tuple: ns={repr(namespace_p)[:30]} msg={_msg_type} node={_node} step={_step} content={_content}", flush=True)
473
494
  else:
474
- print(f"[DeepAgent] 3tuple: payload_type={type(payload_p).__name__}", flush=True)
495
+ print(
496
+ f"[DeepAgent] 3tuple: payload_type={type(payload_p).__name__}", flush=True)
475
497
  else:
476
- print(f"[DeepAgent] chunk: type={type(chunk).__name__}", flush=True)
498
+ print(
499
+ f"[DeepAgent] chunk: type={type(chunk).__name__}", flush=True)
477
500
  # 检查取消
478
501
  if cancel_event and cancel_event.is_set():
479
502
  event = ChatEventBuilder.cancelled("任务已取消")
@@ -506,10 +529,13 @@ class DeepAgent:
506
529
 
507
530
  # ===== 🔑 诊断日志:详细记录每个 chunk =====
508
531
  _chunk_type = type(chunk).__name__
509
- _msg_type = getattr(msg, '__class__.__name__', '?') if msg else 'None'
532
+ _msg_type = getattr(
533
+ msg, '__class__.__name__', '?') if msg else 'None'
510
534
  _ns = namespace if namespace else '()'
511
- _node = metadata.get("langgraph_node", "?") if metadata else "?"
512
- _step = metadata.get("langgraph_step", "?") if metadata else "?"
535
+ _node = metadata.get(
536
+ "langgraph_node", "?") if metadata else "?"
537
+ _step = metadata.get(
538
+ "langgraph_step", "?") if metadata else "?"
513
539
  _content_preview = ""
514
540
  if isinstance(msg, BaseMessage):
515
541
  _c = msg.content or ""
@@ -531,8 +557,10 @@ class DeepAgent:
531
557
  if msg_type in ("AIMessage", "AIMessageChunk"):
532
558
  usage_meta = getattr(msg, "usage_metadata", None)
533
559
  if usage_meta:
534
- total_input_tokens += usage_meta.get("input_tokens", 0)
535
- total_output_tokens += usage_meta.get("output_tokens", 0)
560
+ total_input_tokens += usage_meta.get(
561
+ "input_tokens", 0)
562
+ total_output_tokens += usage_meta.get(
563
+ "output_tokens", 0)
536
564
  if usage_meta.get("input_tokens", 0) > 0:
537
565
  SYLogger.debug(
538
566
  f"[DeepAgent] usage_metadata | input={usage_meta.get('input_tokens', 0)} "
@@ -611,10 +639,12 @@ class DeepAgent:
611
639
  await on_event(event)
612
640
  yield event
613
641
 
614
- print(f"[DeepAgent] post-yield: msg_type={type(msg).__name__}, is_BaseMessage={isinstance(msg, BaseMessage)}", flush=True)
642
+ print(
643
+ f"[DeepAgent] post-yield: msg_type={type(msg).__name__}, is_BaseMessage={isinstance(msg, BaseMessage)}", flush=True)
615
644
 
616
645
  if not isinstance(msg, BaseMessage):
617
- print(f"[DeepAgent] SKIPPING non-BaseMessage: {type(msg).__name__}", flush=True)
646
+ print(
647
+ f"[DeepAgent] SKIPPING non-BaseMessage: {type(msg).__name__}", flush=True)
618
648
  continue
619
649
 
620
650
  msg_type = msg.__class__.__name__
@@ -623,14 +653,16 @@ class DeepAgent:
623
653
  # SummarizationMiddleware 会将摘要包装为 HumanMessage(lc_source="summarization"),
624
654
  # 这仅用于模型内部理解上下文,不应展示给用户
625
655
  if msg_type == "HumanMessage" and getattr(msg, "additional_kwargs", {}).get("lc_source") == "summarization":
626
- SYLogger.debug(f"[DeepAgent] 跳过摘要消息 (lc_source=summarization)")
656
+ SYLogger.debug(
657
+ f"[DeepAgent] 跳过摘要消息 (lc_source=summarization)")
627
658
  continue
628
659
 
629
660
  raw_content = msg.content
630
661
  # 🔑 处理 content 为 list 的情况(多模态模型)
631
662
  if isinstance(raw_content, list):
632
663
  content = "".join(
633
- item.get("text", "") if isinstance(item, dict) else str(item)
664
+ item.get("text", "") if isinstance(
665
+ item, dict) else str(item)
634
666
  for item in raw_content
635
667
  )
636
668
  else:
@@ -639,15 +671,20 @@ class DeepAgent:
639
671
  # 🔑 Defense 3: 清理 AI 输出中的摘要泄漏标签(安全网)
640
672
  # 即使摘要已注入 SystemMessage,模型仍可能在极少数情况下回显标签
641
673
  if msg_type in ("AIMessage", "AIMessageChunk") and content:
674
+ _cleaned = False
642
675
  for _pat in [
643
676
  r'<internal_context_data>.*?</internal_context_data>',
644
677
  r'<compressed_history>.*?</compressed_history>',
645
678
  r'<system_context>.*?</system_context>',
646
679
  ]:
647
680
  if re.search(_pat, content, re.DOTALL):
648
- content = re.sub(_pat, '', content, flags=re.DOTALL)
681
+ content = re.sub(
682
+ _pat, '', content, flags=re.DOTALL)
683
+ _cleaned = True
649
684
  SYLogger.warning("[DeepAgent] AI 输出包含摘要泄漏标签,已清理")
650
- content = content.strip()
685
+ # 仅在确实清理了泄漏标签时才 strip,避免吞掉正常的换行符
686
+ if _cleaned:
687
+ content = content.strip()
651
688
 
652
689
  if msg_type in ("AIMessage", "AIMessageChunk"):
653
690
  # 🔑 提取 reasoning_content(思考/推理内容)
@@ -683,11 +720,13 @@ class DeepAgent:
683
720
  # 用 (id 或 index) 匹配已记录的 tool_call
684
721
  if tcc_id:
685
722
  existing_tc = next(
686
- (tc for tc in current_tool_calls if tc.get("id") == tcc_id), None
723
+ (tc for tc in current_tool_calls if tc.get(
724
+ "id") == tcc_id), None
687
725
  )
688
726
  elif tcc_index is not None:
689
727
  existing_tc = next(
690
- (tc for tc in current_tool_calls if tc.get("_index") == tcc_index), None
728
+ (tc for tc in current_tool_calls if tc.get(
729
+ "_index") == tcc_index), None
691
730
  )
692
731
  else:
693
732
  existing_tc = None
@@ -764,7 +803,8 @@ class DeepAgent:
764
803
  # 非空 args 覆盖(完整解析后的结果)
765
804
  if tc_args and tc_args != {}:
766
805
  existing_tc["args"] = tc_args
767
- existing_tc["_args_buffer"] = json.dumps(tc_args, ensure_ascii=False)
806
+ existing_tc["_args_buffer"] = json.dumps(
807
+ tc_args, ensure_ascii=False)
768
808
  else:
769
809
  current_tool_calls.append({
770
810
  "id": tc_id, "name": tc_name, "args": tc_args,
@@ -844,7 +884,8 @@ class DeepAgent:
844
884
  SYLogger.debug(
845
885
  f"[DeepAgent] AI chunk done | {repr(ai_chunk_buffer[:100])}...")
846
886
 
847
- print(f"[DeepAgent] FOR LOOP ENDED. stream_step={stream_step}, ai_text_content={repr(ai_text_content[:100])}, tool_calls={len(current_tool_calls)}", flush=True)
887
+ print(
888
+ f"[DeepAgent] FOR LOOP ENDED. stream_step={stream_step}, ai_text_content={repr(ai_text_content[:100])}, tool_calls={len(current_tool_calls)}", flush=True)
848
889
 
849
890
  # 空响应检测:模型被调用但没有产出任何文本
850
891
  if not ai_text_content and not ai_chunk_buffer:
@@ -884,7 +925,8 @@ class DeepAgent:
884
925
  yield event
885
926
  raise
886
927
  except Exception as e:
887
- print(f"[DeepAgent] chat() Exception: {type(e).__name__}: {e}", flush=True)
928
+ print(
929
+ f"[DeepAgent] chat() Exception: {type(e).__name__}: {e}", flush=True)
888
930
  import traceback
889
931
  traceback.print_exc()
890
932
  SYLogger.error(f"[DeepAgent] 聊天异常: {e}")
@@ -936,66 +978,76 @@ class DeepAgent:
936
978
  max_sandbox_retries = 3
937
979
 
938
980
  try:
939
- while True:
940
- for attempt in range(max_retries):
941
- try:
942
- print(f"[DeepAgent] _astream_with_retry: attempt={attempt}, starting astream...", flush=True)
943
- chunk_count = 0
944
- async for chunk in self.agent.astream(
945
- input_data,
946
- config=self.config,
947
- stream_mode="messages",
948
- subgraphs=True
949
- ):
950
- chunk_count += 1
951
- print(f"[DeepAgent] _astream yielding chunk #{chunk_count}", flush=True)
952
- yield chunk
953
- print(f"[DeepAgent] _astream yield returned, consumer processed chunk #{chunk_count}", flush=True)
954
- print(f"[DeepAgent] _astream_with_retry: stream ended normally, total_chunks={chunk_count}", flush=True)
955
- return
956
- except (APIConnectionError, APIError, APITimeoutError, ConnectionError, httpx.RemoteProtocolError) as e:
957
- last_error = e
958
- print(f"[DeepAgent] _astream_with_retry: API error: {type(e).__name__}: {e}", flush=True)
959
- if attempt < max_retries - 1:
960
- delay = base_delay * (2 ** attempt)
961
- SYLogger.warning(
962
- f"[DeepAgent] 连接错误: {e}, {delay}秒后重试...")
963
- await asyncio.sleep(delay)
964
- else:
965
- raise last_error
966
- except RuntimeError as e:
967
- err_msg = str(e)
968
- is_sandbox_error = "沙箱服务不可用" in err_msg or "Failed to download" in err_msg
969
- if is_sandbox_error and self.recovery_manager and sandbox_retries < max_sandbox_retries:
970
- sandbox_retries += 1
971
- SYLogger.warning(f"[DeepAgent] 沙箱服务不可用,尝试恢复 ({sandbox_retries}/{max_sandbox_retries})...")
972
- recovered = await self.recovery_manager.recover()
973
- if recovered:
974
- SYLogger.info("[DeepAgent] 沙箱已恢复,继续执行")
975
- break
976
- raise
977
- raise
978
- except ValueError as e:
979
- err_msg = str(e)
980
- if "Failed to download" in err_msg or "沙箱服务不可用" in err_msg:
981
- if self.recovery_manager and sandbox_retries < max_sandbox_retries:
981
+ while True:
982
+ for attempt in range(max_retries):
983
+ try:
984
+ print(
985
+ f"[DeepAgent] _astream_with_retry: attempt={attempt}, starting astream...", flush=True)
986
+ chunk_count = 0
987
+ async for chunk in self.agent.astream(
988
+ input_data,
989
+ config=self.config,
990
+ stream_mode="messages",
991
+ subgraphs=True
992
+ ):
993
+ chunk_count += 1
994
+ print(
995
+ f"[DeepAgent] _astream yielding chunk #{chunk_count}", flush=True)
996
+ yield chunk
997
+ print(
998
+ f"[DeepAgent] _astream yield returned, consumer processed chunk #{chunk_count}", flush=True)
999
+ print(
1000
+ f"[DeepAgent] _astream_with_retry: stream ended normally, total_chunks={chunk_count}", flush=True)
1001
+ return
1002
+ except (APIConnectionError, APIError, APITimeoutError, ConnectionError, httpx.RemoteProtocolError) as e:
1003
+ last_error = e
1004
+ print(
1005
+ f"[DeepAgent] _astream_with_retry: API error: {type(e).__name__}: {e}", flush=True)
1006
+ if attempt < max_retries - 1:
1007
+ delay = base_delay * (2 ** attempt)
1008
+ SYLogger.warning(
1009
+ f"[DeepAgent] 连接错误: {e}, {delay}秒后重试...")
1010
+ await asyncio.sleep(delay)
1011
+ else:
1012
+ raise last_error
1013
+ except RuntimeError as e:
1014
+ err_msg = str(e)
1015
+ is_sandbox_error = "沙箱服务不可用" in err_msg or "Failed to download" in err_msg
1016
+ if is_sandbox_error and self.recovery_manager and sandbox_retries < max_sandbox_retries:
982
1017
  sandbox_retries += 1
983
- SYLogger.warning(f"[DeepAgent] Memory 下载失败(沙箱不可达),尝试恢复 ({sandbox_retries}/{max_sandbox_retries})...")
1018
+ SYLogger.warning(
1019
+ f"[DeepAgent] 沙箱服务不可用,尝试恢复 ({sandbox_retries}/{max_sandbox_retries})...")
984
1020
  recovered = await self.recovery_manager.recover()
985
1021
  if recovered:
986
1022
  SYLogger.info("[DeepAgent] 沙箱已恢复,继续执行")
987
1023
  break
988
- # 恢复失败也继续执行(降级:memory 不可用不阻塞聊天)
989
- SYLogger.warning(f"[DeepAgent] Memory 不可用,降级继续执行: {err_msg}")
990
- continue
991
- raise
992
- else:
993
- break
1024
+ raise
1025
+ raise
1026
+ except ValueError as e:
1027
+ err_msg = str(e)
1028
+ if "Failed to download" in err_msg or "沙箱服务不可用" in err_msg:
1029
+ if self.recovery_manager and sandbox_retries < max_sandbox_retries:
1030
+ sandbox_retries += 1
1031
+ SYLogger.warning(
1032
+ f"[DeepAgent] Memory 下载失败(沙箱不可达),尝试恢复 ({sandbox_retries}/{max_sandbox_retries})...")
1033
+ recovered = await self.recovery_manager.recover()
1034
+ if recovered:
1035
+ SYLogger.info("[DeepAgent] 沙箱已恢复,继续执行")
1036
+ break
1037
+ # 恢复失败也继续执行(降级:memory 不可用不阻塞聊天)
1038
+ SYLogger.warning(
1039
+ f"[DeepAgent] Memory 不可用,降级继续执行: {err_msg}")
1040
+ continue
1041
+ raise
1042
+ else:
1043
+ break
994
1044
  except GeneratorExit:
995
- print("[DeepAgent] _astream_with_retry: GeneratorExit! Consumer closed the generator!", flush=True)
1045
+ print(
1046
+ "[DeepAgent] _astream_with_retry: GeneratorExit! Consumer closed the generator!", flush=True)
996
1047
  raise
997
1048
  except Exception as e:
998
- print(f"[DeepAgent] _astream_with_retry: Unexpected exception: {type(e).__name__}: {e}", flush=True)
1049
+ print(
1050
+ f"[DeepAgent] _astream_with_retry: Unexpected exception: {type(e).__name__}: {e}", flush=True)
999
1051
  raise
1000
1052
 
1001
1053
 
@@ -1047,7 +1099,8 @@ async def create_deep_agent(
1047
1099
  # 等方法在原始 ChatOpenAI 上工作,而不是被 LLMWithTokenTracking 的包装拦截。
1048
1100
  raw_model = getattr(model, 'llm', model)
1049
1101
  if raw_model is not model:
1050
- print(f"[DeepAgent] 提取原始模型: {type(model).__name__} → {type(raw_model).__name__}", flush=True)
1102
+ print(
1103
+ f"[DeepAgent] 提取原始模型: {type(model).__name__} → {type(raw_model).__name__}", flush=True)
1051
1104
  if hasattr(raw_model, 'streaming'):
1052
1105
  raw_model.streaming = True
1053
1106
 
@@ -1136,10 +1189,12 @@ async def create_deep_agent(
1136
1189
 
1137
1190
  RunnableCallable.__init__ = _patched_rc_init
1138
1191
  except Exception as _patch_err:
1139
- SYLogger.warning(f"[DeepAgent] RunnableCallable monkey-patch FAILED: {_patch_err}")
1192
+ SYLogger.warning(
1193
+ f"[DeepAgent] RunnableCallable monkey-patch FAILED: {_patch_err}")
1140
1194
 
1141
1195
  agent = _create_deep_agent(**agent_kwargs)
1142
- print(f"[DeepAgent] Agent created, type={type(agent).__name__}", flush=True)
1196
+ print(
1197
+ f"[DeepAgent] Agent created, type={type(agent).__name__}", flush=True)
1143
1198
 
1144
1199
  # 恢复原始 __init__
1145
1200
  if _original_rc_init is not None:
@@ -1222,19 +1277,23 @@ async def _sync_skills_to_sandbox(
1222
1277
  pass
1223
1278
 
1224
1279
  if remote_version and remote_version == local_version:
1225
- SYLogger.debug(f"[DeepAgent] 技能版本一致,跳过: {skill_name} v{local_version}")
1280
+ SYLogger.debug(
1281
+ f"[DeepAgent] 技能版本一致,跳过: {skill_name} v{local_version}")
1226
1282
  continue
1227
1283
 
1228
1284
  # 版本不一致或沙箱无版本,删除后重新上传
1229
1285
  try:
1230
1286
  await backend.aexecute(f"rm -rf /skills/{skill_name}")
1231
- SYLogger.info(f"[DeepAgent] 技能版本不一致,覆盖: {skill_name} ({remote_version or '无版本'} → {local_version})")
1287
+ SYLogger.info(
1288
+ f"[DeepAgent] 技能版本不一致,覆盖: {skill_name} ({remote_version or '无版本'} → {local_version})")
1232
1289
  except Exception as e:
1233
- SYLogger.warning(f"[DeepAgent] 删除旧版技能失败: {skill_name}, {e}")
1290
+ SYLogger.warning(
1291
+ f"[DeepAgent] 删除旧版技能失败: {skill_name}, {e}")
1234
1292
  continue
1235
1293
 
1236
1294
  await backend.async_sync_dirs([(src, f"/skills/{skill_name}")])
1237
- SYLogger.info(f"[DeepAgent] 同步技能到沙箱: {skill_name} v{local_version}")
1295
+ SYLogger.info(
1296
+ f"[DeepAgent] 同步技能到沙箱: {skill_name} v{local_version}")
1238
1297
  except Exception as e:
1239
1298
  SYLogger.warning(f"[DeepAgent] 技能同步失败: {e}")
1240
1299
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sycommon-python-lib
3
- Version: 0.2.5a36
3
+ Version: 0.2.5a37
4
4
  Summary: Add your description here
5
5
  Requires-Python: >=3.11
6
6
  Description-Content-Type: text/markdown