sycommon-python-lib 0.2.7a40__tar.gz → 0.2.7a41__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 (337) hide show
  1. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/PKG-INFO +1 -1
  2. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/pyproject.toml +1 -1
  3. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/agent/sandbox/http_sandbox_backend.py +13 -6
  4. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/agent/sandbox/minio_sync.py +119 -19
  5. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon_python_lib.egg-info/PKG-INFO +1 -1
  6. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/README.md +0 -0
  7. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/setup.cfg +0 -0
  8. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/command/__init__.py +0 -0
  9. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/command/cli.py +0 -0
  10. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/command/core/__init__.py +0 -0
  11. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/command/core/console.py +0 -0
  12. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/command/core/models.py +0 -0
  13. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/command/core/project.py +0 -0
  14. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/command/core/utils.py +0 -0
  15. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/command/templates/__init__.py +0 -0
  16. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/command/templates/agent/README.md.tpl +0 -0
  17. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/command/templates/agent/__init__.py +0 -0
  18. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/command/templates/agent/agent/__init__.py.tpl +0 -0
  19. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/command/templates/agent/agent/main_agent.py.tpl +0 -0
  20. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/command/templates/agent/agent/nodes/__init__.py.tpl +0 -0
  21. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/command/templates/agent/agent/nodes/example_node.py.tpl +0 -0
  22. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/command/templates/agent/agent/states/__init__.py.tpl +0 -0
  23. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/command/templates/agent/agent/states/agent_state.py.tpl +0 -0
  24. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/command/templates/agent/api/__init__.py.tpl +0 -0
  25. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/command/templates/agent/api/query.py.tpl +0 -0
  26. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/command/templates/agent/api/sse/__init__.py.tpl +0 -0
  27. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/command/templates/agent/api/sse/agent.py.tpl +0 -0
  28. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/command/templates/agent/app.py.tpl +0 -0
  29. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/command/templates/agent/client/__init__.py.tpl +0 -0
  30. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/command/templates/agent/db/__init__.py.tpl +0 -0
  31. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/command/templates/agent/db/model/__init__.py.tpl +0 -0
  32. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/command/templates/agent/db/model/entity.py.tpl +0 -0
  33. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/command/templates/agent/db/service.py.tpl +0 -0
  34. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/command/templates/agent/model/__init__.py.tpl +0 -0
  35. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/command/templates/agent/model/parse.py.tpl +0 -0
  36. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/command/templates/agent/tools/__init__.py.tpl +0 -0
  37. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/command/templates/agent/tools/mq.py.tpl +0 -0
  38. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/command/templates/base/.env.tpl +0 -0
  39. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/command/templates/base/.gitignore.tpl +0 -0
  40. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/command/templates/base/Dockerfile.tpl +0 -0
  41. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/command/templates/base/README.md.tpl +0 -0
  42. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/command/templates/base/__init__.py +0 -0
  43. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/command/templates/base/app.py.tpl +0 -0
  44. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/command/templates/base/app.yaml.tpl +0 -0
  45. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/command/templates/base/client/FileServiceClient.py.tpl +0 -0
  46. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/command/templates/base/client/__init__.py.tpl +0 -0
  47. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/command/templates/base/model/__init__.py.tpl +0 -0
  48. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/command/templates/base/model/file_info.py.tpl +0 -0
  49. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/command/templates/base/requirements.txt.tpl +0 -0
  50. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/command/templates/cli/README.md.tpl +0 -0
  51. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/command/templates/cli/__init__.py +0 -0
  52. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/command/templates/cli/app.py.tpl +0 -0
  53. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/command/templates/cli/commands/__init__.py.tpl +0 -0
  54. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/command/templates/cli/commands/hello.py.tpl +0 -0
  55. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/command/templates/cli/pyproject.toml.tpl +0 -0
  56. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/command/templates/cli/tools/__init__.py.tpl +0 -0
  57. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/command/templates/web/README.md.tpl +0 -0
  58. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/command/templates/web/__init__.py +0 -0
  59. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/command/templates/web/api/__init__.py.tpl +0 -0
  60. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/command/templates/web/api/echo.py.tpl +0 -0
  61. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/command/templates/web/api/sse/__init__.py.tpl +0 -0
  62. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/command/templates/web/api/sse/echo.py.tpl +0 -0
  63. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/command/templates/web/app.py.tpl +0 -0
  64. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/command/templates/web/client/__init__.py.tpl +0 -0
  65. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/command/templates/web/model/__init__.py.tpl +0 -0
  66. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/command/templates/web/tools/__init__.py.tpl +0 -0
  67. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/command/templates/web/tools/mq.py.tpl +0 -0
  68. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/nexus/__init__.py +0 -0
  69. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycli/__init__.py +0 -0
  70. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycli/__main__.py +0 -0
  71. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycli/acp/__init__.py +0 -0
  72. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycli/acp/config.py +0 -0
  73. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycli/acp/executor.py +0 -0
  74. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycli/acp/registry.py +0 -0
  75. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycli/acp/server.py +0 -0
  76. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycli/agents/__init__.py +0 -0
  77. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycli/agents/factory.py +0 -0
  78. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycli/agents/prompts.py +0 -0
  79. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycli/cdp/__init__.py +0 -0
  80. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycli/cdp/browser.py +0 -0
  81. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycli/cdp/capabilities/__init__.py +0 -0
  82. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycli/cdp/capabilities/console.py +0 -0
  83. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycli/cdp/capabilities/dom.py +0 -0
  84. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycli/cdp/capabilities/network.py +0 -0
  85. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycli/cdp/capabilities/page_errors.py +0 -0
  86. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycli/cdp/capabilities/performance.py +0 -0
  87. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycli/cdp/capabilities/screenshot.py +0 -0
  88. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycli/cdp/client.py +0 -0
  89. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycli/cdp/protocol.py +0 -0
  90. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycli/cdp/repl.py +0 -0
  91. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycli/cli.py +0 -0
  92. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycli/commands/__init__.py +0 -0
  93. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycli/commands/acp_cmd.py +0 -0
  94. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycli/commands/cdp_cmd.py +0 -0
  95. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycli/commands/chat_cmd.py +0 -0
  96. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycli/commands/create_cmd.py +0 -0
  97. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycli/commands/evaluate_cmd.py +0 -0
  98. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycli/commands/init_cmd.py +0 -0
  99. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycli/commands/memory_cmd.py +0 -0
  100. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycli/commands/resume_cmd.py +0 -0
  101. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycli/commands/rollback_cmd.py +0 -0
  102. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycli/commands/run_cmd.py +0 -0
  103. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycli/core/__init__.py +0 -0
  104. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycli/core/backend.py +0 -0
  105. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycli/core/config.py +0 -0
  106. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycli/core/display.py +0 -0
  107. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycli/core/git_integration.py +0 -0
  108. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycli/core/llm.py +0 -0
  109. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycli/core/state.py +0 -0
  110. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycli/evaluate/__init__.py +0 -0
  111. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycli/evaluate/api_evaluator.py +0 -0
  112. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycli/memory/__init__.py +0 -0
  113. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycli/memory/compressor.py +0 -0
  114. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycli/memory/full.py +0 -0
  115. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycli/memory/hot.py +0 -0
  116. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycli/memory/manager.py +0 -0
  117. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycli/memory/warm.py +0 -0
  118. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycli/mode/__init__.py +0 -0
  119. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycli/mode/create.py +0 -0
  120. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycli/mode/optimize.py +0 -0
  121. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycli/models/__init__.py +0 -0
  122. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycli/models/config_models.py +0 -0
  123. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycli/rl/__init__.py +0 -0
  124. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycli/rl/baseline_tests.py +0 -0
  125. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycli/rl/checkpoint.py +0 -0
  126. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycli/rl/convergence.py +0 -0
  127. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycli/rl/diagnosis.py +0 -0
  128. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycli/rl/engine.py +0 -0
  129. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycli/rl/environment.py +0 -0
  130. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycli/rl/experience.py +0 -0
  131. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycli/rl/harness_prompts.py +0 -0
  132. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycli/rl/history.py +0 -0
  133. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycli/rl/optimization_logger.py +0 -0
  134. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycli/rl/pre_validation.py +0 -0
  135. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycli/rl/reward.py +0 -0
  136. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycli/rl/strategy_bandit.py +0 -0
  137. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycli/rl/strategy_generator.py +0 -0
  138. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycli/rl/strategy_prompts.py +0 -0
  139. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycli/simple_chat_agent.py +0 -0
  140. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycli/skills/__init__.py +0 -0
  141. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/__init__.py +0 -0
  142. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/agent/__init__.py +0 -0
  143. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/agent/acp/__init__.py +0 -0
  144. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/agent/acp/client.py +0 -0
  145. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/agent/acp/fetch.py +0 -0
  146. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/agent/acp/ssh_init.py +0 -0
  147. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/agent/acp/tool.py +0 -0
  148. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/agent/agent_manager.py +0 -0
  149. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/agent/chat_events.py +0 -0
  150. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/agent/deep_agent.py +0 -0
  151. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/agent/mcp/__init__.py +0 -0
  152. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/agent/mcp/models.py +0 -0
  153. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/agent/mcp/tool_loader.py +0 -0
  154. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/agent/middleware/sandbox_path_guard.py +0 -0
  155. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/agent/middleware/sensitive_guard.py +0 -0
  156. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/agent/middleware/sitecustomize.py +0 -0
  157. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/agent/middleware/skill_api_whitelist.py +0 -0
  158. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/agent/middleware/skill_wl_check.py +0 -0
  159. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/agent/middleware/skill_write_guard.py +0 -0
  160. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/agent/multi_agent_team.py +0 -0
  161. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/agent/sandbox/__init__.py +0 -0
  162. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/agent/sandbox/consistent_hash.py +0 -0
  163. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/agent/sandbox/file_ops.py +0 -0
  164. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/agent/sandbox/sandbox_pool.py +0 -0
  165. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/agent/sandbox/sandbox_recovery.py +0 -0
  166. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/agent/sandbox/session.py +0 -0
  167. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/agent/summarization_utils.py +0 -0
  168. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/auth/__init__.py +0 -0
  169. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/auth/ldap_service.py +0 -0
  170. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/auth/oa_cache.py +0 -0
  171. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/auth/oa_crypto.py +0 -0
  172. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/auth/oa_service.py +0 -0
  173. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/auth/wecom_ldap_service.py +0 -0
  174. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/config/ACPAgentConfig.py +0 -0
  175. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/config/Config.py +0 -0
  176. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/config/DatabaseConfig.py +0 -0
  177. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/config/ElasticsearchConfig.py +0 -0
  178. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/config/EmbeddingConfig.py +0 -0
  179. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/config/LLMConfig.py +0 -0
  180. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/config/LangfuseConfig.py +0 -0
  181. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/config/MQConfig.py +0 -0
  182. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/config/PgConfig.py +0 -0
  183. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/config/RedisConfig.py +0 -0
  184. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/config/RerankerConfig.py +0 -0
  185. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/config/SentryConfig.py +0 -0
  186. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/config/SkillApiWhitelistConfig.py +0 -0
  187. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/config/XxlJobConfig.py +0 -0
  188. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/config/__init__.py +0 -0
  189. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/config/config_change_notifier.py +0 -0
  190. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/database/async_base_db_service.py +0 -0
  191. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/database/async_database_service.py +0 -0
  192. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/database/base_db_service.py +0 -0
  193. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/database/database_service.py +0 -0
  194. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/database/elasticsearch_service.py +0 -0
  195. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/database/pg_checkpoint_service.py +0 -0
  196. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/database/redis_service.py +0 -0
  197. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/database/resilient_pg_saver.py +0 -0
  198. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/database/token_usage_db_service.py +0 -0
  199. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/health/__init__.py +0 -0
  200. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/health/health_check.py +0 -0
  201. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/health/metrics.py +0 -0
  202. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/health/ping.py +0 -0
  203. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/heartbeat_process/__init__.py +0 -0
  204. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/heartbeat_process/heartbeat_config.py +0 -0
  205. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/heartbeat_process/heartbeat_process_manager.py +0 -0
  206. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/heartbeat_process/heartbeat_process_worker.py +0 -0
  207. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/llm/__init__.py +0 -0
  208. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/llm/embedding.py +0 -0
  209. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/llm/get_llm.py +0 -0
  210. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/llm/llm_logger.py +0 -0
  211. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/llm/llm_tokens.py +0 -0
  212. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/llm/llm_with_token_tracking.py +0 -0
  213. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/llm/native_with_fallback_runnable.py +0 -0
  214. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/llm/output_fixing_runnable.py +0 -0
  215. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/llm/struct_token.py +0 -0
  216. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/llm/sy_langfuse.py +0 -0
  217. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/llm/tiktoken_cache/9b5ad71b2ce5302211f9c61530b329a4922fc6a4 +0 -0
  218. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/llm/tiktoken_cache/fb374d419588a4632f3f557e76b4b70aebbca790 +0 -0
  219. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/llm/token_usage_es_service.py +0 -0
  220. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/llm/token_usage_mysql_service.py +0 -0
  221. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/llm/token_utils.py +0 -0
  222. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/llm/usage_token.py +0 -0
  223. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/logging/__init__.py +0 -0
  224. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/logging/async_sql_logger.py +0 -0
  225. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/logging/kafka_log.py +0 -0
  226. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/logging/log_masker.py +0 -0
  227. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/logging/logger_levels.py +0 -0
  228. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/logging/logger_wrapper.py +0 -0
  229. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/logging/process_logger.py +0 -0
  230. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/logging/sql_logger.py +0 -0
  231. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/mcp_server/__init__.py +0 -0
  232. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/mcp_server/server.py +0 -0
  233. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/middleware/__init__.py +0 -0
  234. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/middleware/context.py +0 -0
  235. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/middleware/cors.py +0 -0
  236. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/middleware/docs.py +0 -0
  237. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/middleware/exception.py +0 -0
  238. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/middleware/middleware.py +0 -0
  239. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/middleware/monitor_memory.py +0 -0
  240. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/middleware/mq.py +0 -0
  241. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/middleware/sandbox.py +0 -0
  242. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/middleware/timeout.py +0 -0
  243. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/middleware/token_tracking.py +0 -0
  244. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/middleware/tool_result_truncation.py +0 -0
  245. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/middleware/traceid.py +0 -0
  246. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/models/__init__.py +0 -0
  247. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/models/base_http.py +0 -0
  248. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/models/log.py +0 -0
  249. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/models/mcp_server_config.py +0 -0
  250. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/models/mqlistener_config.py +0 -0
  251. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/models/mqmsg_model.py +0 -0
  252. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/models/mqsend_config.py +0 -0
  253. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/models/sandbox.py +0 -0
  254. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/models/sso_user.py +0 -0
  255. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/models/token_usage.py +0 -0
  256. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/models/token_usage_mysql.py +0 -0
  257. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/models/xxljob_handler_config.py +0 -0
  258. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/notice/__init__.py +0 -0
  259. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/notice/uvicorn_monitor.py +0 -0
  260. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/notice/wecom_message.py +0 -0
  261. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/rabbitmq/process_pool_consumer.py +0 -0
  262. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/rabbitmq/rabbitmq_client.py +0 -0
  263. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/rabbitmq/rabbitmq_pool.py +0 -0
  264. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/rabbitmq/rabbitmq_service.py +0 -0
  265. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/rabbitmq/rabbitmq_service_client_manager.py +0 -0
  266. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/rabbitmq/rabbitmq_service_connection_monitor.py +0 -0
  267. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/rabbitmq/rabbitmq_service_consumer_manager.py +0 -0
  268. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/rabbitmq/rabbitmq_service_core.py +0 -0
  269. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/rabbitmq/rabbitmq_service_producer_manager.py +0 -0
  270. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/sentry/__init__.py +0 -0
  271. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/sentry/sy_sentry.py +0 -0
  272. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/services.py +0 -0
  273. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/sse/__init__.py +0 -0
  274. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/sse/event.py +0 -0
  275. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/sse/sse.py +0 -0
  276. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/synacos/__init__.py +0 -0
  277. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/synacos/example.py +0 -0
  278. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/synacos/example2.py +0 -0
  279. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/synacos/feign.py +0 -0
  280. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/synacos/feign_client.py +0 -0
  281. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/synacos/nacos_client_base.py +0 -0
  282. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/synacos/nacos_config_manager.py +0 -0
  283. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/synacos/nacos_heartbeat_manager.py +0 -0
  284. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/synacos/nacos_service.py +0 -0
  285. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/synacos/nacos_service_discovery.py +0 -0
  286. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/synacos/nacos_service_registration.py +0 -0
  287. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/synacos/param.py +0 -0
  288. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/tests/deep_agent_server.py +0 -0
  289. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/tests/test_consistent_hash.py +0 -0
  290. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/tests/test_consumer_loss_rootcause.py +0 -0
  291. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/tests/test_consumer_recovery.py +0 -0
  292. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/tests/test_deep_agent.py +0 -0
  293. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/tests/test_dynamic_max_tokens.py +0 -0
  294. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/tests/test_email.py +0 -0
  295. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/tests/test_encoding_cache.py +0 -0
  296. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/tests/test_fix_verification.py +0 -0
  297. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/tests/test_mcp_server.py +0 -0
  298. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/tests/test_minimax_reasoning.py +0 -0
  299. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/tests/test_mq.py +0 -0
  300. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/tests/test_oa_login.py +0 -0
  301. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/tests/test_queue_priority_fallback.py +0 -0
  302. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/tests/test_real_summarization.py +0 -0
  303. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/tests/test_summarization_config.py +0 -0
  304. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/tests/test_summarization_real.py +0 -0
  305. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/tests/test_summary_leak_e2e.py +0 -0
  306. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/tests/test_upgrade_aio_pika.py +0 -0
  307. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/tests/test_upgrade_langgraph_stream.py +0 -0
  308. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/tests/test_upgrade_verification.py +0 -0
  309. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/tools/__init__.py +0 -0
  310. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/tools/async_utils.py +0 -0
  311. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/tools/docs.py +0 -0
  312. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/tools/env.py +0 -0
  313. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/tools/merge_headers.py +0 -0
  314. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/tools/snowflake.py +0 -0
  315. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/tools/syemail.py +0 -0
  316. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/tools/timing.py +0 -0
  317. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/xxljob/__init__.py +0 -0
  318. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon/xxljob/xxljob_service.py +0 -0
  319. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon_python_lib.egg-info/SOURCES.txt +0 -0
  320. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon_python_lib.egg-info/dependency_links.txt +0 -0
  321. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon_python_lib.egg-info/entry_points.txt +0 -0
  322. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon_python_lib.egg-info/requires.txt +0 -0
  323. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/src/sycommon_python_lib.egg-info/top_level.txt +0 -0
  324. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/tests/test_acp_tool.py +0 -0
  325. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/tests/test_asyncio_logging.py +0 -0
  326. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/tests/test_config_change_notifier.py +0 -0
  327. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/tests/test_hotreload_snapshot.py +0 -0
  328. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/tests/test_llm_apikey_contextvar.py +0 -0
  329. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/tests/test_log_masker.py +0 -0
  330. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/tests/test_resilient_pg_saver.py +0 -0
  331. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/tests/test_sandbox_path_guard.py +0 -0
  332. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/tests/test_sensitive_guard.py +0 -0
  333. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/tests/test_simple_chat_agent.py +0 -0
  334. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/tests/test_skill_regex_upgrade.py +0 -0
  335. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/tests/test_skill_write_guard.py +0 -0
  336. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/tests/test_sycli.py +0 -0
  337. {sycommon_python_lib-0.2.7a40 → sycommon_python_lib-0.2.7a41}/tests/test_sync_skills_to_sandbox.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sycommon-python-lib
3
- Version: 0.2.7a40
3
+ Version: 0.2.7a41
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.7a40"
3
+ version = "0.2.7a41"
4
4
  description = "Add your description here"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.11"
@@ -467,11 +467,18 @@ class HTTPSandboxBackend(FileOperationsMixin, SandboxBackendProtocol):
467
467
  import asyncio
468
468
  loop = asyncio.new_event_loop()
469
469
  try:
470
- restored = loop.run_until_complete(
471
- minio.restore_from_minio(self, self._user_id))
472
- workspace_restored = restored > 0
473
- SYLogger.info(
474
- f"[Sandbox] MinIO 恢复完成: {restored} 个文件")
470
+ try:
471
+ # 🔑 restore 任何异常(含 MINIO_RESTORE_MAX_BYTES 字节上限提前结束)
472
+ # 都绝不阻断故障转移切换——这里吞掉异常只记日志,
473
+ # 会话末尾的全量扫描会兜底补齐缺失文件。
474
+ restored = loop.run_until_complete(
475
+ minio.restore_from_minio(self, self._user_id))
476
+ workspace_restored = restored > 0
477
+ SYLogger.info(
478
+ f"[Sandbox] MinIO 恢复完成: {restored} 个文件")
479
+ except Exception as re:
480
+ SYLogger.warning(
481
+ f"[Sandbox] MinIO 恢复异常(不阻断切换): {re}")
475
482
  finally:
476
483
  # restore_from_minio 复用了共享 backend self,内部经
477
484
  # aupload_files -> _get_async_session() 的 loop 不匹配逻辑,
@@ -494,7 +501,7 @@ class HTTPSandboxBackend(FileOperationsMixin, SandboxBackendProtocol):
494
501
  loop.close()
495
502
  except Exception as e:
496
503
  SYLogger.warning(
497
- f"[Sandbox] MinIO 恢复失败: {e}")
504
+ f"[Sandbox] MinIO 恢复失败(不阻断切换): {e}")
498
505
 
499
506
  if not workspace_restored:
500
507
  SYLogger.info(
@@ -35,6 +35,12 @@ _RESTORE_GLOBAL_CAP = 100
35
35
  # 全局信号量惰性创建(绑定到首次调用时的 event loop;单 loop 部署下不变)。
36
36
  _RESTORE_DOWNLOAD_SEM: "asyncio.Semaphore | None" = None
37
37
 
38
+ # restore_from_minio 的单用户总字节上限(OOM 兜底)。
39
+ # 旧实现 gather 所有文件内容进内存后才分批上传,用户 MinIO 里文件多/大时会一次性几 GB 驻留 → OOM。
40
+ # 新实现分批流水线(下 N 个→传 N 个→字节出作用域),同时按 list_objects 的 size 累加,
41
+ # 超过本上限则跳过剩余文件(仅 warning,不报错;会话末尾的全量扫描仍兜底)。
42
+ _MAX_RESTORE_BYTES = int(os.environ.get("MINIO_RESTORE_MAX_BYTES", 4 * 1024 ** 3))
43
+
38
44
 
39
45
  def _get_restore_download_sem() -> "asyncio.Semaphore":
40
46
  """惰性创建全局下载信号量。"""
@@ -698,9 +704,12 @@ class MinioSyncService(metaclass=SingletonMeta):
698
704
 
699
705
  try:
700
706
  coro = _run()
701
- self._background_tasks.add(coro)
702
- coro.add_done_callback(self._background_tasks.discard)
703
- asyncio.ensure_future(coro)
707
+ # 🔑 必须先 ensure_future 拿到 Task 再 add_done_callback——裸 coroutine 没有
708
+ # add_done_callback 方法(旧代码先 coro.add_done_callback 会抛 AttributeError,
709
+ # 而 except RuntimeError 抓不住,导致有 running loop 时直推静默失败)。
710
+ task = asyncio.ensure_future(coro)
711
+ self._background_tasks.add(task)
712
+ task.add_done_callback(self._background_tasks.discard)
704
713
  except RuntimeError:
705
714
  # 无运行中的事件循环(极少数调用上下文),退化为后台线程兜底
706
715
  import threading
@@ -715,6 +724,66 @@ class MinioSyncService(metaclass=SingletonMeta):
715
724
  target=_bg, name=f"minio-userpush-{user_id}", daemon=True
716
725
  ).start()
717
726
 
727
+ def push_user_files_from_disk(self, user_id: str, files: list[tuple[str, str]]) -> None:
728
+ """从磁盘文件 fire-and-forget 直推 MinIO(OOM 友好版本)。
729
+
730
+ 与 push_user_files_batch 同义,但 files 是 [(相对路径, 本地磁盘绝对路径), ...],
731
+ 逐文件【读盘上传】,不在内存里同时持有所有附件的 bytes——企微一条消息多张大图场景下,
732
+ 旧 push_user_files_batch 要把所有图 bytes 攒在 list 里直到后台推送结束,内存随附件数线性涨。
733
+
734
+ files 里的相对路径规范化(strip ./ 与前导斜杠)与 push_user_files_batch 一致;
735
+ object_key 复用 make_user_file_key → {user_id}/current/{path}。
736
+ """
737
+ if not self.is_available():
738
+ return
739
+ # 规范化:(相对路径, 磁盘路径),去掉空值
740
+ norm = []
741
+ for fp, disk in files:
742
+ if not fp or not disk:
743
+ continue
744
+ clean = fp.replace("\\", "/").lstrip("./").lstrip("/")
745
+ if not clean:
746
+ continue
747
+ norm.append((clean, disk))
748
+ if not norm:
749
+ return
750
+
751
+ def _push_sync():
752
+ ok = 0
753
+ for fp, disk in norm:
754
+ try:
755
+ with open(disk, "rb") as f:
756
+ content = f.read()
757
+ object_key = self.make_user_file_key(user_id, fp)
758
+ mt, _ = mimetypes.guess_type(fp)
759
+ if self.upload_bytes(
760
+ object_key, content,
761
+ content_type=mt or "application/octet-stream",
762
+ ):
763
+ ok += 1
764
+ # content 随循环迭代出作用域,下一文件前可被 GC
765
+ except Exception as e:
766
+ SYLogger.warning(f"[MinIO] push_from_disk 单文件失败: {fp}, {e}")
767
+ SYLogger.info(f"[MinIO] 用户文件已直推(from-disk): user={user_id}, ok={ok}/{len(norm)}")
768
+
769
+ async def _run():
770
+ try:
771
+ await asyncio.to_thread(_push_sync)
772
+ except Exception as e:
773
+ SYLogger.warning(f"[MinIO] 用户文件直推失败(from-disk): user={user_id}, error={e}")
774
+
775
+ try:
776
+ coro = _run()
777
+ # 🔑 必须先 ensure_future 拿到 Task 再 add_done_callback(裸 coroutine 无该方法)
778
+ task = asyncio.ensure_future(coro)
779
+ self._background_tasks.add(task)
780
+ task.add_done_callback(self._background_tasks.discard)
781
+ except RuntimeError:
782
+ import threading
783
+ threading.Thread(
784
+ target=_push_sync, name=f"minio-diskpush-{user_id}", daemon=True
785
+ ).start()
786
+
718
787
  # ============== 反向同步(MinIO → 沙箱) ==============
719
788
 
720
789
  async def restore_from_minio(self, sandbox_backend, user_id: str) -> int:
@@ -778,15 +847,22 @@ class MinioSyncService(metaclass=SingletonMeta):
778
847
 
779
848
  SYLogger.info(f"[MinIO] 需恢复 {len(to_restore)} 个文件到沙箱: user={user_id}")
780
849
 
781
- # 4. 并发恢复:两层限流。
850
+ # 4. 并发恢复:两层限流 + 分批流水线。
782
851
  # - per_user_sem(每次 restore 新建,本用户独享 5 槽):单用户恢复够快;
783
- # - global_sem(进程级 15 槽):多用户同时恢复时全局封顶,防 N×5 路下载
852
+ # - global_sem(进程级 100 槽):多用户同时恢复时全局封顶,防 N×5 路下载
784
853
  # 打满线程池、挤占主请求路径的沙箱操作。
785
- # 下载协程先抢本用户 5 槽、再抢全局 15 槽,故实际并发 = min(本用户待下载, 全局剩余)。
854
+ # 下载协程先抢本用户 5 槽、再抢全局 100 槽,故实际并发 = min(本用户待下载, 全局剩余)。
855
+ #
856
+ # 🔑 OOM 兜底:旧实现 gather 所有文件内容进 downloaded 列表后才上传,用户文件多/大
857
+ # 一次几 GB 进内存。改为【分批流水线】:下 _RESTORE_PER_USER 个→立即上传→字节出作用域
858
+ # →下一批。同时按 list_objects 的 size 累加 total_bytes_seen,超 _MAX_RESTORE_BYTES 跳过剩余。
786
859
  restored = 0
787
860
  global_sem = _get_restore_download_sem()
788
861
  per_user_sem = asyncio.Semaphore(_RESTORE_PER_USER)
789
862
 
863
+ # objects[].size 是 list_objects 返回的字节大小,用它预判总量,避免下完才知道超限
864
+ obj_size_map = {o.object_name[len(prefix):]: (o.size or 0) for o in objects}
865
+
790
866
  async def _download_one(rel_path: str):
791
867
  """下载单个 MinIO 对象到内存,返回 (沙箱绝对路径, 内容) 或 None。"""
792
868
  async with per_user_sem, global_sem:
@@ -807,19 +883,37 @@ class MinioSyncService(metaclass=SingletonMeta):
807
883
  SYLogger.warning(f"[MinIO] 下载文件失败: {rel_path}, error: {e}")
808
884
  return None
809
885
 
810
- # 全量并发下载(受两层 Semaphore 限流),比按批串行快得多
811
- download_results = await asyncio.gather(
812
- *[_download_one(rp) for rp in to_restore]
813
- )
814
- downloaded = [r for r in download_results if r is not None]
815
-
816
- # 上传仍走 batch_upload(服务端并发),按 5 个一批发(沙箱端点对超大批量可能限流)
817
- for i in range(0, len(downloaded), _RESTORE_PER_USER):
818
- batch = downloaded[i:i + _RESTORE_PER_USER]
819
- if not batch:
886
+ # 分批流水线:下 N 个 → 传 N 个 → 字节随 downloaded/download_results 出作用域释放
887
+ total_bytes_seen = 0
888
+ capped = False
889
+ batch_size = _RESTORE_PER_USER
890
+ idx = 0
891
+ while idx < len(to_restore):
892
+ batch_paths = to_restore[idx:idx + batch_size]
893
+ idx += len(batch_paths)
894
+
895
+ # 字节上限预判:超限则放弃本批及后续(仅 warning,会话末尾全量扫描兜底)
896
+ for rp in batch_paths:
897
+ sz = obj_size_map.get(rp, 0)
898
+ if sz > 0 and total_bytes_seen + sz > _MAX_RESTORE_BYTES:
899
+ remaining = (len(to_restore) - idx) + len(batch_paths)
900
+ SYLogger.warning(
901
+ f"[MinIO] restore 字节上限触发 ({_MAX_RESTORE_BYTES} bytes),"
902
+ f"跳过剩余约 {remaining} 个文件: user={user_id}")
903
+ capped = True
904
+ break
905
+ total_bytes_seen += sz
906
+ if capped:
907
+ break
908
+
909
+ download_results = await asyncio.gather(
910
+ *[_download_one(rp) for rp in batch_paths]
911
+ )
912
+ downloaded = [r for r in download_results if r is not None]
913
+ if not downloaded:
820
914
  continue
821
915
  try:
822
- results = await sandbox_backend.aupload_files(batch)
916
+ results = await sandbox_backend.aupload_files(downloaded)
823
917
  for r in results:
824
918
  if not r.error:
825
919
  restored += 1
@@ -828,7 +922,13 @@ class MinioSyncService(metaclass=SingletonMeta):
828
922
  f"[MinIO] 上传到沙箱失败: {r.path}, error={r.error}")
829
923
  except Exception as e:
830
924
  SYLogger.warning(f"[MinIO] 批量上传到沙箱失败: {e}")
925
+ # downloaded / download_results 到此出作用域,下一批前可被 GC
831
926
 
832
- SYLogger.info(
833
- f"[MinIO] 恢复完成: user={user_id}, restored={restored}/{len(to_restore)}")
927
+ if capped:
928
+ SYLogger.warning(
929
+ f"[MinIO] 恢复提前结束(字节上限): user={user_id}, "
930
+ f"restored={restored}/{len(to_restore)}")
931
+ else:
932
+ SYLogger.info(
933
+ f"[MinIO] 恢复完成: user={user_id}, restored={restored}/{len(to_restore)}")
834
934
  return restored
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sycommon-python-lib
3
- Version: 0.2.7a40
3
+ Version: 0.2.7a41
4
4
  Summary: Add your description here
5
5
  Requires-Python: >=3.11
6
6
  Description-Content-Type: text/markdown