sycommon-python-lib 0.2.7a23__tar.gz → 0.2.7a25__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 (334) hide show
  1. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/PKG-INFO +1 -1
  2. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/pyproject.toml +1 -1
  3. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/agent/sandbox/minio_sync.py +93 -0
  4. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/middleware/sandbox.py +189 -3
  5. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/services.py +8 -1
  6. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon_python_lib.egg-info/PKG-INFO +1 -1
  7. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/README.md +0 -0
  8. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/setup.cfg +0 -0
  9. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/__init__.py +0 -0
  10. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/cli.py +0 -0
  11. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/core/__init__.py +0 -0
  12. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/core/console.py +0 -0
  13. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/core/models.py +0 -0
  14. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/core/project.py +0 -0
  15. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/core/utils.py +0 -0
  16. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/__init__.py +0 -0
  17. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/agent/README.md.tpl +0 -0
  18. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/agent/__init__.py +0 -0
  19. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/agent/agent/__init__.py.tpl +0 -0
  20. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/agent/agent/main_agent.py.tpl +0 -0
  21. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/agent/agent/nodes/__init__.py.tpl +0 -0
  22. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/agent/agent/nodes/example_node.py.tpl +0 -0
  23. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/agent/agent/states/__init__.py.tpl +0 -0
  24. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/agent/agent/states/agent_state.py.tpl +0 -0
  25. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/agent/api/__init__.py.tpl +0 -0
  26. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/agent/api/query.py.tpl +0 -0
  27. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/agent/api/sse/__init__.py.tpl +0 -0
  28. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/agent/api/sse/agent.py.tpl +0 -0
  29. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/agent/app.py.tpl +0 -0
  30. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/agent/client/__init__.py.tpl +0 -0
  31. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/agent/db/__init__.py.tpl +0 -0
  32. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/agent/db/model/__init__.py.tpl +0 -0
  33. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/agent/db/model/entity.py.tpl +0 -0
  34. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/agent/db/service.py.tpl +0 -0
  35. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/agent/model/__init__.py.tpl +0 -0
  36. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/agent/model/parse.py.tpl +0 -0
  37. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/agent/tools/__init__.py.tpl +0 -0
  38. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/agent/tools/mq.py.tpl +0 -0
  39. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/base/.env.tpl +0 -0
  40. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/base/.gitignore.tpl +0 -0
  41. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/base/Dockerfile.tpl +0 -0
  42. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/base/README.md.tpl +0 -0
  43. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/base/__init__.py +0 -0
  44. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/base/app.py.tpl +0 -0
  45. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/base/app.yaml.tpl +0 -0
  46. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/base/client/FileServiceClient.py.tpl +0 -0
  47. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/base/client/__init__.py.tpl +0 -0
  48. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/base/model/__init__.py.tpl +0 -0
  49. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/base/model/file_info.py.tpl +0 -0
  50. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/base/requirements.txt.tpl +0 -0
  51. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/cli/README.md.tpl +0 -0
  52. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/cli/__init__.py +0 -0
  53. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/cli/app.py.tpl +0 -0
  54. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/cli/commands/__init__.py.tpl +0 -0
  55. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/cli/commands/hello.py.tpl +0 -0
  56. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/cli/pyproject.toml.tpl +0 -0
  57. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/cli/tools/__init__.py.tpl +0 -0
  58. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/web/README.md.tpl +0 -0
  59. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/web/__init__.py +0 -0
  60. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/web/api/__init__.py.tpl +0 -0
  61. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/web/api/echo.py.tpl +0 -0
  62. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/web/api/sse/__init__.py.tpl +0 -0
  63. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/web/api/sse/echo.py.tpl +0 -0
  64. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/web/app.py.tpl +0 -0
  65. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/web/client/__init__.py.tpl +0 -0
  66. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/web/model/__init__.py.tpl +0 -0
  67. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/web/tools/__init__.py.tpl +0 -0
  68. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/web/tools/mq.py.tpl +0 -0
  69. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/nexus/__init__.py +0 -0
  70. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/__init__.py +0 -0
  71. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/__main__.py +0 -0
  72. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/acp/__init__.py +0 -0
  73. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/acp/config.py +0 -0
  74. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/acp/executor.py +0 -0
  75. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/acp/registry.py +0 -0
  76. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/acp/server.py +0 -0
  77. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/agents/__init__.py +0 -0
  78. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/agents/factory.py +0 -0
  79. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/agents/prompts.py +0 -0
  80. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/cdp/__init__.py +0 -0
  81. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/cdp/browser.py +0 -0
  82. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/cdp/capabilities/__init__.py +0 -0
  83. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/cdp/capabilities/console.py +0 -0
  84. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/cdp/capabilities/dom.py +0 -0
  85. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/cdp/capabilities/network.py +0 -0
  86. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/cdp/capabilities/page_errors.py +0 -0
  87. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/cdp/capabilities/performance.py +0 -0
  88. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/cdp/capabilities/screenshot.py +0 -0
  89. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/cdp/client.py +0 -0
  90. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/cdp/protocol.py +0 -0
  91. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/cdp/repl.py +0 -0
  92. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/cli.py +0 -0
  93. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/commands/__init__.py +0 -0
  94. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/commands/acp_cmd.py +0 -0
  95. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/commands/cdp_cmd.py +0 -0
  96. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/commands/chat_cmd.py +0 -0
  97. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/commands/create_cmd.py +0 -0
  98. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/commands/evaluate_cmd.py +0 -0
  99. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/commands/init_cmd.py +0 -0
  100. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/commands/memory_cmd.py +0 -0
  101. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/commands/resume_cmd.py +0 -0
  102. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/commands/rollback_cmd.py +0 -0
  103. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/commands/run_cmd.py +0 -0
  104. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/core/__init__.py +0 -0
  105. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/core/backend.py +0 -0
  106. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/core/config.py +0 -0
  107. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/core/display.py +0 -0
  108. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/core/git_integration.py +0 -0
  109. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/core/llm.py +0 -0
  110. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/core/state.py +0 -0
  111. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/evaluate/__init__.py +0 -0
  112. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/evaluate/api_evaluator.py +0 -0
  113. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/memory/__init__.py +0 -0
  114. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/memory/compressor.py +0 -0
  115. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/memory/full.py +0 -0
  116. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/memory/hot.py +0 -0
  117. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/memory/manager.py +0 -0
  118. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/memory/warm.py +0 -0
  119. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/mode/__init__.py +0 -0
  120. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/mode/create.py +0 -0
  121. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/mode/optimize.py +0 -0
  122. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/models/__init__.py +0 -0
  123. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/models/config_models.py +0 -0
  124. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/rl/__init__.py +0 -0
  125. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/rl/baseline_tests.py +0 -0
  126. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/rl/checkpoint.py +0 -0
  127. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/rl/convergence.py +0 -0
  128. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/rl/diagnosis.py +0 -0
  129. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/rl/engine.py +0 -0
  130. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/rl/environment.py +0 -0
  131. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/rl/experience.py +0 -0
  132. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/rl/harness_prompts.py +0 -0
  133. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/rl/history.py +0 -0
  134. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/rl/optimization_logger.py +0 -0
  135. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/rl/pre_validation.py +0 -0
  136. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/rl/reward.py +0 -0
  137. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/rl/strategy_bandit.py +0 -0
  138. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/rl/strategy_generator.py +0 -0
  139. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/rl/strategy_prompts.py +0 -0
  140. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/simple_chat_agent.py +0 -0
  141. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/skills/__init__.py +0 -0
  142. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/__init__.py +0 -0
  143. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/agent/__init__.py +0 -0
  144. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/agent/acp/__init__.py +0 -0
  145. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/agent/acp/client.py +0 -0
  146. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/agent/acp/fetch.py +0 -0
  147. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/agent/acp/ssh_init.py +0 -0
  148. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/agent/acp/tool.py +0 -0
  149. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/agent/agent_manager.py +0 -0
  150. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/agent/chat_events.py +0 -0
  151. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/agent/deep_agent.py +0 -0
  152. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/agent/mcp/__init__.py +0 -0
  153. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/agent/mcp/models.py +0 -0
  154. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/agent/mcp/tool_loader.py +0 -0
  155. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/agent/middleware/sandbox_path_guard.py +0 -0
  156. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/agent/middleware/sensitive_guard.py +0 -0
  157. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/agent/middleware/sitecustomize.py +0 -0
  158. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/agent/middleware/skill_api_whitelist.py +0 -0
  159. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/agent/middleware/skill_wl_check.py +0 -0
  160. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/agent/middleware/skill_write_guard.py +0 -0
  161. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/agent/multi_agent_team.py +0 -0
  162. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/agent/sandbox/__init__.py +0 -0
  163. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/agent/sandbox/consistent_hash.py +0 -0
  164. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/agent/sandbox/file_ops.py +0 -0
  165. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/agent/sandbox/http_sandbox_backend.py +0 -0
  166. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/agent/sandbox/sandbox_pool.py +0 -0
  167. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/agent/sandbox/sandbox_recovery.py +0 -0
  168. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/agent/sandbox/session.py +0 -0
  169. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/agent/summarization_utils.py +0 -0
  170. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/auth/__init__.py +0 -0
  171. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/auth/ldap_service.py +0 -0
  172. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/auth/oa_cache.py +0 -0
  173. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/auth/oa_crypto.py +0 -0
  174. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/auth/oa_service.py +0 -0
  175. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/auth/wecom_ldap_service.py +0 -0
  176. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/config/ACPAgentConfig.py +0 -0
  177. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/config/Config.py +0 -0
  178. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/config/DatabaseConfig.py +0 -0
  179. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/config/ElasticsearchConfig.py +0 -0
  180. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/config/EmbeddingConfig.py +0 -0
  181. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/config/LLMConfig.py +0 -0
  182. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/config/LangfuseConfig.py +0 -0
  183. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/config/MQConfig.py +0 -0
  184. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/config/PgConfig.py +0 -0
  185. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/config/RedisConfig.py +0 -0
  186. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/config/RerankerConfig.py +0 -0
  187. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/config/SentryConfig.py +0 -0
  188. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/config/SkillApiWhitelistConfig.py +0 -0
  189. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/config/XxlJobConfig.py +0 -0
  190. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/config/__init__.py +0 -0
  191. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/config/config_change_notifier.py +0 -0
  192. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/database/async_base_db_service.py +0 -0
  193. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/database/async_database_service.py +0 -0
  194. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/database/base_db_service.py +0 -0
  195. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/database/database_service.py +0 -0
  196. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/database/elasticsearch_service.py +0 -0
  197. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/database/pg_checkpoint_service.py +0 -0
  198. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/database/redis_service.py +0 -0
  199. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/database/resilient_pg_saver.py +0 -0
  200. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/database/token_usage_db_service.py +0 -0
  201. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/health/__init__.py +0 -0
  202. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/health/health_check.py +0 -0
  203. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/health/metrics.py +0 -0
  204. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/health/ping.py +0 -0
  205. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/heartbeat_process/__init__.py +0 -0
  206. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/heartbeat_process/heartbeat_config.py +0 -0
  207. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/heartbeat_process/heartbeat_process_manager.py +0 -0
  208. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/heartbeat_process/heartbeat_process_worker.py +0 -0
  209. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/llm/__init__.py +0 -0
  210. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/llm/embedding.py +0 -0
  211. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/llm/get_llm.py +0 -0
  212. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/llm/llm_logger.py +0 -0
  213. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/llm/llm_tokens.py +0 -0
  214. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/llm/llm_with_token_tracking.py +0 -0
  215. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/llm/native_with_fallback_runnable.py +0 -0
  216. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/llm/output_fixing_runnable.py +0 -0
  217. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/llm/struct_token.py +0 -0
  218. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/llm/sy_langfuse.py +0 -0
  219. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/llm/tiktoken_cache/9b5ad71b2ce5302211f9c61530b329a4922fc6a4 +0 -0
  220. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/llm/tiktoken_cache/fb374d419588a4632f3f557e76b4b70aebbca790 +0 -0
  221. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/llm/token_usage_es_service.py +0 -0
  222. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/llm/token_usage_mysql_service.py +0 -0
  223. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/llm/token_utils.py +0 -0
  224. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/llm/usage_token.py +0 -0
  225. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/logging/__init__.py +0 -0
  226. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/logging/async_sql_logger.py +0 -0
  227. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/logging/kafka_log.py +0 -0
  228. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/logging/log_masker.py +0 -0
  229. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/logging/logger_levels.py +0 -0
  230. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/logging/logger_wrapper.py +0 -0
  231. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/logging/process_logger.py +0 -0
  232. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/logging/sql_logger.py +0 -0
  233. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/mcp_server/__init__.py +0 -0
  234. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/mcp_server/server.py +0 -0
  235. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/middleware/__init__.py +0 -0
  236. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/middleware/context.py +0 -0
  237. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/middleware/cors.py +0 -0
  238. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/middleware/docs.py +0 -0
  239. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/middleware/exception.py +0 -0
  240. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/middleware/middleware.py +0 -0
  241. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/middleware/monitor_memory.py +0 -0
  242. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/middleware/mq.py +0 -0
  243. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/middleware/timeout.py +0 -0
  244. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/middleware/token_tracking.py +0 -0
  245. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/middleware/tool_result_truncation.py +0 -0
  246. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/middleware/traceid.py +0 -0
  247. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/models/__init__.py +0 -0
  248. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/models/base_http.py +0 -0
  249. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/models/log.py +0 -0
  250. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/models/mcp_server_config.py +0 -0
  251. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/models/mqlistener_config.py +0 -0
  252. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/models/mqmsg_model.py +0 -0
  253. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/models/mqsend_config.py +0 -0
  254. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/models/sandbox.py +0 -0
  255. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/models/sso_user.py +0 -0
  256. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/models/token_usage.py +0 -0
  257. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/models/token_usage_mysql.py +0 -0
  258. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/models/xxljob_handler_config.py +0 -0
  259. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/notice/__init__.py +0 -0
  260. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/notice/uvicorn_monitor.py +0 -0
  261. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/notice/wecom_message.py +0 -0
  262. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/rabbitmq/process_pool_consumer.py +0 -0
  263. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/rabbitmq/rabbitmq_client.py +0 -0
  264. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/rabbitmq/rabbitmq_pool.py +0 -0
  265. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/rabbitmq/rabbitmq_service.py +0 -0
  266. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/rabbitmq/rabbitmq_service_client_manager.py +0 -0
  267. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/rabbitmq/rabbitmq_service_connection_monitor.py +0 -0
  268. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/rabbitmq/rabbitmq_service_consumer_manager.py +0 -0
  269. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/rabbitmq/rabbitmq_service_core.py +0 -0
  270. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/rabbitmq/rabbitmq_service_producer_manager.py +0 -0
  271. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/sentry/__init__.py +0 -0
  272. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/sentry/sy_sentry.py +0 -0
  273. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/sse/__init__.py +0 -0
  274. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/sse/event.py +0 -0
  275. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/sse/sse.py +0 -0
  276. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/synacos/__init__.py +0 -0
  277. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/synacos/example.py +0 -0
  278. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/synacos/example2.py +0 -0
  279. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/synacos/feign.py +0 -0
  280. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/synacos/feign_client.py +0 -0
  281. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/synacos/nacos_client_base.py +0 -0
  282. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/synacos/nacos_config_manager.py +0 -0
  283. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/synacos/nacos_heartbeat_manager.py +0 -0
  284. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/synacos/nacos_service.py +0 -0
  285. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/synacos/nacos_service_discovery.py +0 -0
  286. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/synacos/nacos_service_registration.py +0 -0
  287. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/synacos/param.py +0 -0
  288. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/tests/deep_agent_server.py +0 -0
  289. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/tests/test_consistent_hash.py +0 -0
  290. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/tests/test_consumer_loss_rootcause.py +0 -0
  291. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/tests/test_consumer_recovery.py +0 -0
  292. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/tests/test_deep_agent.py +0 -0
  293. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/tests/test_dynamic_max_tokens.py +0 -0
  294. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/tests/test_email.py +0 -0
  295. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/tests/test_encoding_cache.py +0 -0
  296. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/tests/test_fix_verification.py +0 -0
  297. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/tests/test_mcp_server.py +0 -0
  298. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/tests/test_minimax_reasoning.py +0 -0
  299. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/tests/test_mq.py +0 -0
  300. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/tests/test_oa_login.py +0 -0
  301. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/tests/test_queue_priority_fallback.py +0 -0
  302. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/tests/test_real_summarization.py +0 -0
  303. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/tests/test_summarization_config.py +0 -0
  304. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/tests/test_summarization_real.py +0 -0
  305. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/tests/test_summary_leak_e2e.py +0 -0
  306. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/tools/__init__.py +0 -0
  307. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/tools/async_utils.py +0 -0
  308. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/tools/docs.py +0 -0
  309. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/tools/env.py +0 -0
  310. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/tools/merge_headers.py +0 -0
  311. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/tools/snowflake.py +0 -0
  312. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/tools/syemail.py +0 -0
  313. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/tools/timing.py +0 -0
  314. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/xxljob/__init__.py +0 -0
  315. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/xxljob/xxljob_service.py +0 -0
  316. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon_python_lib.egg-info/SOURCES.txt +0 -0
  317. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon_python_lib.egg-info/dependency_links.txt +0 -0
  318. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon_python_lib.egg-info/entry_points.txt +0 -0
  319. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon_python_lib.egg-info/requires.txt +0 -0
  320. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon_python_lib.egg-info/top_level.txt +0 -0
  321. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/tests/test_acp_tool.py +0 -0
  322. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/tests/test_asyncio_logging.py +0 -0
  323. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/tests/test_config_change_notifier.py +0 -0
  324. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/tests/test_hotreload_snapshot.py +0 -0
  325. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/tests/test_llm_apikey_contextvar.py +0 -0
  326. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/tests/test_log_masker.py +0 -0
  327. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/tests/test_resilient_pg_saver.py +0 -0
  328. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/tests/test_sandbox_path_guard.py +0 -0
  329. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/tests/test_sensitive_guard.py +0 -0
  330. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/tests/test_simple_chat_agent.py +0 -0
  331. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/tests/test_skill_regex_upgrade.py +0 -0
  332. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/tests/test_skill_write_guard.py +0 -0
  333. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/tests/test_sycli.py +0 -0
  334. {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/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.7a23
3
+ Version: 0.2.7a25
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.7a23"
3
+ version = "0.2.7a25"
4
4
  description = "Add your description here"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.11"
@@ -244,6 +244,99 @@ class MinioSyncService(metaclass=SingletonMeta):
244
244
  self.aremove_prefix(f"{uid}/current/large_tool_results/"),
245
245
  )
246
246
 
247
+ # ============== tmp 目录 pip 残留清理(MinIO 侧,与沙箱侧对称双删)==============
248
+
249
+ def _list_pip_tmp_object_keys(self, user_prefix: str) -> list[str]:
250
+ """列出某用户 MinIO current/tmp/ 下 pip-* 开头的对象 key。
251
+
252
+ 沙箱文件会同步到 {user}/current/{相对路径},pip 残留落 tmp/ → 对应
253
+ {user}/current/tmp/pip-*。这里只 list,不删(删除在调用方,便于按用户聚合)。
254
+
255
+ Args:
256
+ user_prefix: 形如 "osulcode.xiao/current/" 的 MinIO 前缀
257
+
258
+ Returns:
259
+ 匹配 {user_prefix}tmp/pip- 的 object_name 列表。
260
+ """
261
+ if not self._client:
262
+ return []
263
+ prefix = f"{user_prefix}tmp/pip-"
264
+ try:
265
+ return [
266
+ obj.object_name
267
+ for obj in self._client.list_objects(self._bucket, prefix=prefix, recursive=True)
268
+ ]
269
+ except Exception as e:
270
+ SYLogger.warning(f"[MinIO] list pip tmp 失败: prefix={prefix}, error={e}")
271
+ return []
272
+
273
+ def cleanup_pip_tmp(self, now_ts: float = None) -> int:
274
+ """全量清理所有用户 MinIO current/tmp/ 下的 pip-* 残留。
275
+
276
+ 供「服务启动」全量清理调用,与 sandbox.cleanup_all_pip_tmp_residue_async 配对。
277
+ 递归 list 整个 bucket,按路径段筛 /current/tmp/pip-*(各用户的残留都在
278
+ {user}/current/tmp/pip-* 下,前缀含动态 user_id,故不能写死前缀,必须全量扫
279
+ 再按路径模式过滤)。同步实现,调用方用 asyncio.to_thread 包装。
280
+
281
+ Args:
282
+ now_ts: 预留(MinIO 侧 mtime 过滤较复杂且收益低,当前全删;沙箱侧已用
283
+ mtime 兜底避免误删正在跑的 pip)。
284
+
285
+ Returns:
286
+ 实际删除的对象数量。
287
+ """
288
+ if not self._client:
289
+ return 0
290
+ removed = 0
291
+ try:
292
+ # 递归列出整个 bucket,筛出路径含 /current/tmp/pip- 的对象。
293
+ # 各用户残留 = {user}/current/tmp/pip-*,user_id 动态,故必须全量扫后按
294
+ # 路径模式过滤,不能写死前缀。
295
+ keys = [
296
+ obj.object_name
297
+ for obj in self._client.list_objects(self._bucket, recursive=True)
298
+ if "/current/tmp/pip-" in obj.object_name
299
+ ]
300
+ for key in keys:
301
+ if self.remove_object(key):
302
+ removed += 1
303
+ except Exception as e:
304
+ SYLogger.warning(f"[MinIO] cleanup_pip_tmp 全量清理异常: {e}")
305
+ return removed
306
+
307
+ def cleanup_pip_tmp_for_user(self, user_id: str, now_ts: float = None) -> int:
308
+ """清理单个用户 MinIO current/tmp/ 下的 pip-* 残留。
309
+
310
+ 供「对话结束」单用户清理调用,与 sandbox.cleanup_user_pip_tmp_residue_async 配对。
311
+
312
+ Args:
313
+ user_id: 用户ID
314
+ now_ts: 预留(同 cleanup_pip_tmp,当前全删)
315
+
316
+ Returns:
317
+ 实际删除的对象数量。
318
+ """
319
+ uid = user_id.lower().replace(" ", "")
320
+ user_prefix = f"{uid}/current/"
321
+ keys = self._list_pip_tmp_object_keys(user_prefix)
322
+ if not keys:
323
+ return 0
324
+ removed = 0
325
+ for key in keys:
326
+ if self.remove_object(key):
327
+ removed += 1
328
+ if removed:
329
+ SYLogger.info(f"[MinIO] 清理用户 {user_id} tmp pip 残留: removed={removed}")
330
+ return removed
331
+
332
+ async def acleanup_pip_tmp(self, now_ts: float = None) -> int:
333
+ """异步全量清理所有用户 MinIO tmp pip 残留(to_thread 包装同步实现)。"""
334
+ return await asyncio.to_thread(self.cleanup_pip_tmp, now_ts)
335
+
336
+ async def acleanup_pip_tmp_for_user(self, user_id: str, now_ts: float = None) -> int:
337
+ """异步清理单个用户 MinIO tmp pip 残留(to_thread 包装同步实现)。"""
338
+ return await asyncio.to_thread(self.cleanup_pip_tmp_for_user, user_id, now_ts)
339
+
247
340
  # ============== 查找最近副本 ==============
248
341
 
249
342
  def find_latest_object_key(self, user_id: str, file_path: str) -> Optional[str]:
@@ -83,9 +83,36 @@ def _get_process_lock() -> asyncio.Lock:
83
83
  PROCESS_CLEANUP_TTL = 300 # 已完成进程保留时间(秒)
84
84
  PROCESS_CLEANUP_INTERVAL = 60 # 清理检查间隔(秒)
85
85
 
86
+ # tmp 目录 pip 残留清理配置
87
+ # pip 安装(build/setup 阶段)会在 $TMPDIR 下建一堆临时目录: pip-build-env-*、
88
+ # pip-unpack-*、pip-req-build-*、pip-trampoline-* 等。正常 pip 成功结束会自己清,
89
+ # 但被超时杀掉/中断/异常退出时这些目录就残留下来,越积越多(每个可能几十~几百 MB,
90
+ # 含源码/wheel/build 产物)。沙箱 $TMPDIR = {workspace}/tmp,故残留全堆在这里。
91
+ #
92
+ # 所有 pip 临时目录统一以 "pip-" 开头(pip 源码 temp_dir.py 里 mkdtemp(prefix="pip-...")
93
+ # 的约定),故用一个前缀覆盖全部,且对 pip 未来新增变体自动生效。刻意不用"包含
94
+ # pip/pip3"匹配——会误伤用户在 tmp 里自建的含 pip 字样的正常文件(如 pipeline-data、
95
+ # my-pip-export);也不用裸 "pip" 前缀——会误伤 pipeline-*/pipcache 等。带 "-" 边界
96
+ # 刚好圈住所有 pip 临时目录,又不碰用户文件。
97
+ _PIP_TMP_PREFIXES = ("pip-",)
98
+ # 只清理 N 分钟前的(mtime 兜底):pip 正在跑时这些目录 mtime 持续更新,不会误删。
99
+ _PIP_TMP_MIN_AGE_SECONDS = 10 * 60
100
+
101
+ # 清理触发方式(用户最终方案):
102
+ # - 服务启动时清一次(全量,所有用户) -> services lifespan startup 调
103
+ # cleanup_all_pip_tmp_residue_async()
104
+ # - 每次对话结束后异步清一次(单用户) -> api/chat + wecom/manager 调
105
+ # cleanup_user_pip_tmp_residue_async(user_id)
106
+ # 不再用周期 60s 轮询——启动 + 对话结束两个事件已覆盖所有产生时机。
107
+
86
108
 
87
109
  async def _cleanup_finished_processes():
88
- """异步清理已完成的过期进程"""
110
+ """周期清理已完成的过期后台进程记录(仅进程记录,不含 pip tmp)。
111
+
112
+ 注:pip tmp 残留的清理改为「启动 + 对话结束」事件触发
113
+ (cleanup_all_pip_tmp_residue_async / cleanup_user_pip_tmp_residue_async),
114
+ 不再在此循环里做。
115
+ """
89
116
  lock = _get_process_lock()
90
117
  while True:
91
118
  await asyncio.sleep(PROCESS_CLEANUP_INTERVAL)
@@ -100,6 +127,159 @@ async def _cleanup_finished_processes():
100
127
  SYLogger.debug(f"[Sandbox Server] 清理过期进程: {k}")
101
128
 
102
129
 
130
+ # ============== tmp 目录 pip 残留清理(事件触发:启动 / 对话结束)==============
131
+
132
+ def _collect_pip_tmp_targets(tmp_dir: str, now_ts: float) -> list[str]:
133
+ """收集单个用户 tmp/ 下可清理的 pip 残留目录绝对路径(不删除,仅返回清单)。
134
+
135
+ 筛选规则:名称匹配 _PIP_TMP_PREFIXES 且 mtime 距 now_ts 超过 _PIP_TMP_MIN_AGE_SECONDS。
136
+ mtime 兜底:pip 正在跑时其临时目录 mtime 持续刷新,不会被误删。
137
+
138
+ Args:
139
+ tmp_dir: 某用户的 tmp 目录绝对路径(如 .../<user>/tmp)
140
+ now_ts: 当前时间戳(秒),用于 mtime 比较
141
+
142
+ Returns:
143
+ 待删目录的绝对路径列表(已通过 mtime 判定)。tmp_dir 不存在时返回 []。
144
+ """
145
+ if not os.path.isdir(tmp_dir):
146
+ return []
147
+ min_age = _PIP_TMP_MIN_AGE_SECONDS
148
+ targets = []
149
+ try:
150
+ for name in os.listdir(tmp_dir):
151
+ if not name.startswith(_PIP_TMP_PREFIXES):
152
+ continue
153
+ target = os.path.join(tmp_dir, name)
154
+ try:
155
+ mtime = os.path.getmtime(target)
156
+ except OSError:
157
+ continue # 已不在或无法 stat,跳过
158
+ if now_ts - mtime < min_age:
159
+ continue # 还"新",可能在跑,跳过
160
+ targets.append(target)
161
+ except OSError:
162
+ pass
163
+ return targets
164
+
165
+
166
+ def cleanup_user_pip_tmp_residue(user_id: str, now_ts: float = None) -> int:
167
+ """同步清理单个用户 tmp/ 下的 pip 残留(仅沙箱侧,不碰 MinIO)。
168
+
169
+ user_id 经 _sanitize_user_id 归一化后定位到 {WORKSPACE_BASE}/<user>/tmp/。
170
+ 当该用户工作目录不存在时直接返回 0(不报错、不创建、不遍历)。
171
+
172
+ Args:
173
+ user_id: 用户ID
174
+ now_ts: 当前时间戳;None 则取 datetime.now().timestamp()
175
+
176
+ Returns:
177
+ 实际删除的目录数量。
178
+ """
179
+ if now_ts is None:
180
+ now_ts = datetime.now().timestamp()
181
+ tmp_dir = os.path.join(WORKSPACE_BASE, _sanitize_user_id(user_id), "tmp")
182
+ if not os.path.isdir(tmp_dir):
183
+ # 用户工作区不存在 → 不创建、不遍历,直接返回 0
184
+ return 0
185
+ removed = 0
186
+ for target in _collect_pip_tmp_targets(tmp_dir, now_ts):
187
+ try:
188
+ shutil.rmtree(target, ignore_errors=True)
189
+ removed += 1
190
+ except Exception:
191
+ pass # 单个删失败不影响其它
192
+ return removed
193
+
194
+
195
+ def cleanup_all_pip_tmp_residue(now_ts: float = None) -> int:
196
+ """同步清理所有用户工作区 tmp/ 下的 pip 残留(仅沙箱侧,不碰 MinIO)。
197
+
198
+ 遍历 {WORKSPACE_BASE} 下每个 <user>/tmp/(不存在的跳过),删除匹配前缀且
199
+ mtime 超过阈值的 pip 残留目录。供「服务启动」时一次性全量清理。
200
+
201
+ Args:
202
+ now_ts: 当前时间戳;None 则取 datetime.now().timestamp()
203
+
204
+ Returns:
205
+ 实际删除的目录数量。
206
+ """
207
+ if now_ts is None:
208
+ now_ts = datetime.now().timestamp()
209
+ if not os.path.isdir(WORKSPACE_BASE):
210
+ return 0
211
+ removed = 0
212
+ # 逐用户:snapshot listdir,避免遍历时目录被增删导致异常
213
+ for user_dir in list(os.listdir(WORKSPACE_BASE)):
214
+ tmp_dir = os.path.join(WORKSPACE_BASE, user_dir, "tmp")
215
+ # tmp_dir 不存在直接跳过(不创建、不报错)
216
+ if not os.path.isdir(tmp_dir):
217
+ continue
218
+ for target in _collect_pip_tmp_targets(tmp_dir, now_ts):
219
+ try:
220
+ shutil.rmtree(target, ignore_errors=True)
221
+ removed += 1
222
+ except Exception:
223
+ pass
224
+ return removed
225
+
226
+
227
+ async def cleanup_all_pip_tmp_residue_async(now_ts: float = None) -> int:
228
+ """异步全量清理所有用户 tmp pip 残留(沙箱 + MinIO 双删)。
229
+
230
+ 服务启动时调用。沙箱删除放线程池不阻塞事件循环;MinIO 按用户批量删
231
+ {user}/current/tmp/pip-* 前缀(沙箱文件已同步上 MinIO,故需双删)。
232
+ """
233
+ if now_ts is None:
234
+ now_ts = datetime.now().timestamp()
235
+ # 1. 沙箱侧:线程池删除
236
+ try:
237
+ removed = await asyncio.to_thread(cleanup_all_pip_tmp_residue, now_ts)
238
+ if removed:
239
+ SYLogger.info(f"[Sandbox Server] 清理 tmp pip 残留: {removed} 个目录")
240
+ except Exception as e:
241
+ removed = 0
242
+ SYLogger.warning(f"[Sandbox Server] 清理 tmp pip 残留异常: {e}")
243
+
244
+ # 2. MinIO 侧:按用户删 {user}/current/tmp/pip-* 前缀(容错,不可用就跳过)
245
+ try:
246
+ from sycommon.agent.sandbox.minio_sync import MinioSyncService
247
+ service = MinioSyncService()
248
+ if service.is_available():
249
+ minio_removed = await service.acleanup_pip_tmp(now_ts=now_ts)
250
+ if minio_removed:
251
+ SYLogger.info(f"[Sandbox Server] 清理 MinIO tmp pip 残留: {minio_removed} 个对象")
252
+ except Exception as e:
253
+ # MinIO 清理失败不影响沙箱清理结果
254
+ SYLogger.warning(f"[Sandbox Server] 清理 MinIO tmp pip 残留异常: {e}")
255
+ return removed
256
+
257
+
258
+ async def cleanup_user_pip_tmp_residue_async(user_id: str, now_ts: float = None) -> int:
259
+ """异步清理单个用户 tmp pip 残留(沙箱 + MinIO 双删)。
260
+
261
+ 对话结束后调用。沙箱删除放线程池;MinIO 删该用户的 {user}/current/tmp/pip-* 前缀。
262
+ """
263
+ if now_ts is None:
264
+ now_ts = datetime.now().timestamp()
265
+ # 1. 沙箱侧
266
+ try:
267
+ removed = await asyncio.to_thread(cleanup_user_pip_tmp_residue, user_id, now_ts)
268
+ except Exception as e:
269
+ removed = 0
270
+ SYLogger.warning(f"[Sandbox Server] 清理用户 {user_id} tmp pip 残留异常: {e}")
271
+
272
+ # 2. MinIO 侧(容错)
273
+ try:
274
+ from sycommon.agent.sandbox.minio_sync import MinioSyncService
275
+ service = MinioSyncService()
276
+ if service.is_available():
277
+ await service.acleanup_pip_tmp_for_user(user_id, now_ts=now_ts)
278
+ except Exception as e:
279
+ SYLogger.warning(f"[Sandbox Server] 清理用户 {user_id} MinIO tmp pip 残留异常: {e}")
280
+ return removed
281
+
282
+
103
283
  # ============== 常量配置 ==============
104
284
 
105
285
  MAX_OUTPUT_BYTES = 100_000
@@ -1109,7 +1289,8 @@ def setup_sandbox_handler(app: FastAPI, config: dict = None):
1109
1289
  try:
1110
1290
  entries = sorted(os.scandir(dir_path), key=lambda e: (
1111
1291
  not e.is_dir(follow_symlinks=False), e.name.lower()))
1112
- except PermissionError:
1292
+ except OSError:
1293
+ # 枚举期间目录被删除/失联(PermissionError/FileNotFoundError 等)
1113
1294
  return node
1114
1295
 
1115
1296
  for entry in entries:
@@ -1127,11 +1308,16 @@ def setup_sandbox_handler(app: FastAPI, config: dict = None):
1127
1308
  child = build_tree(abs_path, virtual_path, depth + 1)
1128
1309
  node.children.append(child)
1129
1310
  else:
1311
+ # stat 单独取,跳过枚举期间被删除的瞬时文件(TOCTOU)
1312
+ try:
1313
+ st = entry.stat()
1314
+ except OSError:
1315
+ continue
1130
1316
  child = TreeNode(
1131
1317
  path=virtual_path,
1132
1318
  name=entry.name,
1133
1319
  is_dir=False,
1134
- size=entry.stat().st_size,
1320
+ size=st.st_size,
1135
1321
  )
1136
1322
  node.children.append(child)
1137
1323
 
@@ -333,10 +333,17 @@ class Services(metaclass=SingletonMeta):
333
333
 
334
334
  # 5. 启动沙箱后台清理任务(如果沙箱服务启用)
335
335
  if instance._enable_sandbox:
336
- from sycommon.middleware.sandbox import _cleanup_finished_processes
336
+ from sycommon.middleware.sandbox import (
337
+ _cleanup_finished_processes,
338
+ cleanup_all_pip_tmp_residue_async,
339
+ )
337
340
  sandbox_cleanup_task = asyncio.create_task(
338
341
  _cleanup_finished_processes())
339
342
  logging.info("沙箱后台清理任务已启动")
343
+ # 服务启动即全量清理一次 tmp 目录的 pip 残留(沙箱 + MinIO 双删)。
344
+ # fire-and-forget:不阻塞启动,失败只记日志。
345
+ asyncio.create_task(cleanup_all_pip_tmp_residue_async())
346
+ logging.info("沙箱 tmp pip 残留启动清理任务已触发")
340
347
 
341
348
  # 6. 初始化 MCP Server(路由已全部注册,可安全读取 OpenAPI schema)
342
349
  if instance._enable_mcp_server:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sycommon-python-lib
3
- Version: 0.2.7a23
3
+ Version: 0.2.7a25
4
4
  Summary: Add your description here
5
5
  Requires-Python: >=3.11
6
6
  Description-Content-Type: text/markdown