sycommon-python-lib 0.2.8a5__tar.gz → 0.2.8a6__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 (363) hide show
  1. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/PKG-INFO +1 -1
  2. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/pyproject.toml +1 -1
  3. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/agent/deep_agent.py +0 -15
  4. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/middleware/egress_wall.py +2 -2
  5. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/middleware/sandbox_gateway.py +2 -2
  6. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon_python_lib.egg-info/PKG-INFO +1 -1
  7. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon_python_lib.egg-info/SOURCES.txt +0 -4
  8. sycommon_python_lib-0.2.8a5/src/sycommon/agent/middleware/sitecustomize.py +0 -300
  9. sycommon_python_lib-0.2.8a5/src/sycommon/agent/middleware/skill_api_whitelist.py +0 -479
  10. sycommon_python_lib-0.2.8a5/src/sycommon/agent/middleware/skill_wl_check.py +0 -123
  11. sycommon_python_lib-0.2.8a5/src/sycommon/config/SkillApiWhitelistConfig.py +0 -87
  12. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/README.md +0 -0
  13. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/setup.cfg +0 -0
  14. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/command/__init__.py +0 -0
  15. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/command/cli.py +0 -0
  16. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/command/core/__init__.py +0 -0
  17. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/command/core/console.py +0 -0
  18. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/command/core/models.py +0 -0
  19. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/command/core/project.py +0 -0
  20. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/command/core/utils.py +0 -0
  21. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/command/templates/__init__.py +0 -0
  22. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/command/templates/agent/README.md.tpl +0 -0
  23. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/command/templates/agent/__init__.py +0 -0
  24. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/command/templates/agent/agent/__init__.py.tpl +0 -0
  25. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/command/templates/agent/agent/main_agent.py.tpl +0 -0
  26. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/command/templates/agent/agent/nodes/__init__.py.tpl +0 -0
  27. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/command/templates/agent/agent/nodes/example_node.py.tpl +0 -0
  28. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/command/templates/agent/agent/states/__init__.py.tpl +0 -0
  29. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/command/templates/agent/agent/states/agent_state.py.tpl +0 -0
  30. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/command/templates/agent/api/__init__.py.tpl +0 -0
  31. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/command/templates/agent/api/query.py.tpl +0 -0
  32. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/command/templates/agent/api/sse/__init__.py.tpl +0 -0
  33. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/command/templates/agent/api/sse/agent.py.tpl +0 -0
  34. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/command/templates/agent/app.py.tpl +0 -0
  35. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/command/templates/agent/client/__init__.py.tpl +0 -0
  36. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/command/templates/agent/db/__init__.py.tpl +0 -0
  37. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/command/templates/agent/db/model/__init__.py.tpl +0 -0
  38. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/command/templates/agent/db/model/entity.py.tpl +0 -0
  39. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/command/templates/agent/db/service.py.tpl +0 -0
  40. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/command/templates/agent/model/__init__.py.tpl +0 -0
  41. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/command/templates/agent/model/parse.py.tpl +0 -0
  42. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/command/templates/agent/tools/__init__.py.tpl +0 -0
  43. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/command/templates/agent/tools/mq.py.tpl +0 -0
  44. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/command/templates/base/.env.tpl +0 -0
  45. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/command/templates/base/.gitignore.tpl +0 -0
  46. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/command/templates/base/Dockerfile.tpl +0 -0
  47. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/command/templates/base/README.md.tpl +0 -0
  48. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/command/templates/base/__init__.py +0 -0
  49. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/command/templates/base/app.py.tpl +0 -0
  50. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/command/templates/base/app.yaml.tpl +0 -0
  51. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/command/templates/base/client/FileServiceClient.py.tpl +0 -0
  52. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/command/templates/base/client/__init__.py.tpl +0 -0
  53. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/command/templates/base/model/__init__.py.tpl +0 -0
  54. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/command/templates/base/model/file_info.py.tpl +0 -0
  55. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/command/templates/base/requirements.txt.tpl +0 -0
  56. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/command/templates/cli/README.md.tpl +0 -0
  57. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/command/templates/cli/__init__.py +0 -0
  58. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/command/templates/cli/app.py.tpl +0 -0
  59. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/command/templates/cli/commands/__init__.py.tpl +0 -0
  60. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/command/templates/cli/commands/hello.py.tpl +0 -0
  61. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/command/templates/cli/pyproject.toml.tpl +0 -0
  62. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/command/templates/cli/tools/__init__.py.tpl +0 -0
  63. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/command/templates/web/README.md.tpl +0 -0
  64. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/command/templates/web/__init__.py +0 -0
  65. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/command/templates/web/api/__init__.py.tpl +0 -0
  66. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/command/templates/web/api/echo.py.tpl +0 -0
  67. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/command/templates/web/api/sse/__init__.py.tpl +0 -0
  68. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/command/templates/web/api/sse/echo.py.tpl +0 -0
  69. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/command/templates/web/app.py.tpl +0 -0
  70. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/command/templates/web/client/__init__.py.tpl +0 -0
  71. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/command/templates/web/model/__init__.py.tpl +0 -0
  72. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/command/templates/web/tools/__init__.py.tpl +0 -0
  73. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/command/templates/web/tools/mq.py.tpl +0 -0
  74. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/nexus/__init__.py +0 -0
  75. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycli/__init__.py +0 -0
  76. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycli/__main__.py +0 -0
  77. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycli/acp/__init__.py +0 -0
  78. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycli/acp/config.py +0 -0
  79. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycli/acp/executor.py +0 -0
  80. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycli/acp/registry.py +0 -0
  81. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycli/acp/server.py +0 -0
  82. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycli/agents/__init__.py +0 -0
  83. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycli/agents/factory.py +0 -0
  84. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycli/agents/prompts.py +0 -0
  85. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycli/cdp/__init__.py +0 -0
  86. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycli/cdp/browser.py +0 -0
  87. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycli/cdp/capabilities/__init__.py +0 -0
  88. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycli/cdp/capabilities/console.py +0 -0
  89. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycli/cdp/capabilities/dom.py +0 -0
  90. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycli/cdp/capabilities/network.py +0 -0
  91. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycli/cdp/capabilities/page_errors.py +0 -0
  92. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycli/cdp/capabilities/performance.py +0 -0
  93. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycli/cdp/capabilities/screenshot.py +0 -0
  94. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycli/cdp/client.py +0 -0
  95. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycli/cdp/protocol.py +0 -0
  96. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycli/cdp/repl.py +0 -0
  97. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycli/cli.py +0 -0
  98. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycli/commands/__init__.py +0 -0
  99. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycli/commands/acp_cmd.py +0 -0
  100. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycli/commands/cdp_cmd.py +0 -0
  101. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycli/commands/chat_cmd.py +0 -0
  102. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycli/commands/create_cmd.py +0 -0
  103. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycli/commands/evaluate_cmd.py +0 -0
  104. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycli/commands/init_cmd.py +0 -0
  105. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycli/commands/memory_cmd.py +0 -0
  106. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycli/commands/resume_cmd.py +0 -0
  107. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycli/commands/rollback_cmd.py +0 -0
  108. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycli/commands/run_cmd.py +0 -0
  109. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycli/core/__init__.py +0 -0
  110. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycli/core/backend.py +0 -0
  111. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycli/core/config.py +0 -0
  112. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycli/core/display.py +0 -0
  113. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycli/core/git_integration.py +0 -0
  114. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycli/core/llm.py +0 -0
  115. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycli/core/state.py +0 -0
  116. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycli/evaluate/__init__.py +0 -0
  117. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycli/evaluate/api_evaluator.py +0 -0
  118. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycli/memory/__init__.py +0 -0
  119. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycli/memory/compressor.py +0 -0
  120. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycli/memory/full.py +0 -0
  121. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycli/memory/hot.py +0 -0
  122. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycli/memory/manager.py +0 -0
  123. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycli/memory/warm.py +0 -0
  124. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycli/mode/__init__.py +0 -0
  125. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycli/mode/create.py +0 -0
  126. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycli/mode/optimize.py +0 -0
  127. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycli/models/__init__.py +0 -0
  128. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycli/models/config_models.py +0 -0
  129. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycli/rl/__init__.py +0 -0
  130. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycli/rl/baseline_tests.py +0 -0
  131. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycli/rl/checkpoint.py +0 -0
  132. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycli/rl/convergence.py +0 -0
  133. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycli/rl/diagnosis.py +0 -0
  134. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycli/rl/engine.py +0 -0
  135. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycli/rl/environment.py +0 -0
  136. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycli/rl/experience.py +0 -0
  137. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycli/rl/harness_prompts.py +0 -0
  138. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycli/rl/history.py +0 -0
  139. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycli/rl/optimization_logger.py +0 -0
  140. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycli/rl/pre_validation.py +0 -0
  141. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycli/rl/reward.py +0 -0
  142. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycli/rl/strategy_bandit.py +0 -0
  143. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycli/rl/strategy_generator.py +0 -0
  144. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycli/rl/strategy_prompts.py +0 -0
  145. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycli/simple_chat_agent.py +0 -0
  146. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycli/skills/__init__.py +0 -0
  147. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/__init__.py +0 -0
  148. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/agent/__init__.py +0 -0
  149. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/agent/acp/__init__.py +0 -0
  150. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/agent/acp/client.py +0 -0
  151. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/agent/acp/fetch.py +0 -0
  152. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/agent/acp/ssh_init.py +0 -0
  153. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/agent/acp/tool.py +0 -0
  154. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/agent/agent_manager.py +0 -0
  155. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/agent/chat_events.py +0 -0
  156. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/agent/mcp/__init__.py +0 -0
  157. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/agent/mcp/models.py +0 -0
  158. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/agent/mcp/tool_loader.py +0 -0
  159. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/agent/middleware/model_request_prep.py +0 -0
  160. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/agent/middleware/sandbox_path_guard.py +0 -0
  161. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/agent/middleware/sensitive_guard.py +0 -0
  162. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/agent/middleware/skill_write_guard.py +0 -0
  163. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/agent/multi_agent_team.py +0 -0
  164. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/agent/reasoning_content_patch.py +0 -0
  165. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/agent/resume_compactor.py +0 -0
  166. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/agent/sandbox/__init__.py +0 -0
  167. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/agent/sandbox/consistent_hash.py +0 -0
  168. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/agent/sandbox/file_ops.py +0 -0
  169. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/agent/sandbox/http_sandbox_backend.py +0 -0
  170. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/agent/sandbox/minio_sync.py +0 -0
  171. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/agent/sandbox/sandbox_pool.py +0 -0
  172. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/agent/sandbox/sandbox_recovery.py +0 -0
  173. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/agent/sandbox/session.py +0 -0
  174. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/agent/summarization_utils.py +0 -0
  175. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/auth/__init__.py +0 -0
  176. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/auth/ldap_service.py +0 -0
  177. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/auth/oa_cache.py +0 -0
  178. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/auth/oa_crypto.py +0 -0
  179. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/auth/oa_service.py +0 -0
  180. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/auth/wecom_ldap_service.py +0 -0
  181. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/config/ACPAgentConfig.py +0 -0
  182. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/config/Config.py +0 -0
  183. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/config/DatabaseConfig.py +0 -0
  184. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/config/EgressPolicyConfig.py +0 -0
  185. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/config/ElasticsearchConfig.py +0 -0
  186. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/config/EmbeddingConfig.py +0 -0
  187. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/config/LLMConfig.py +0 -0
  188. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/config/LangfuseConfig.py +0 -0
  189. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/config/MQConfig.py +0 -0
  190. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/config/PgConfig.py +0 -0
  191. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/config/RedisConfig.py +0 -0
  192. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/config/RerankerConfig.py +0 -0
  193. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/config/SentryConfig.py +0 -0
  194. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/config/XxlJobConfig.py +0 -0
  195. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/config/__init__.py +0 -0
  196. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/config/config_change_notifier.py +0 -0
  197. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/database/async_base_db_service.py +0 -0
  198. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/database/async_database_service.py +0 -0
  199. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/database/base_db_service.py +0 -0
  200. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/database/database_service.py +0 -0
  201. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/database/elasticsearch_service.py +0 -0
  202. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/database/pg_checkpoint_service.py +0 -0
  203. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/database/redis_service.py +0 -0
  204. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/database/resilient_pg_saver.py +0 -0
  205. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/database/token_usage_db_service.py +0 -0
  206. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/health/__init__.py +0 -0
  207. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/health/health_check.py +0 -0
  208. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/health/metrics.py +0 -0
  209. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/health/ping.py +0 -0
  210. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/heartbeat_process/__init__.py +0 -0
  211. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/heartbeat_process/heartbeat_config.py +0 -0
  212. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/heartbeat_process/heartbeat_process_manager.py +0 -0
  213. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/heartbeat_process/heartbeat_process_worker.py +0 -0
  214. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/llm/__init__.py +0 -0
  215. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/llm/embedding.py +0 -0
  216. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/llm/get_llm.py +0 -0
  217. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/llm/llm_logger.py +0 -0
  218. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/llm/llm_tokens.py +0 -0
  219. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/llm/llm_with_token_tracking.py +0 -0
  220. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/llm/native_with_fallback_runnable.py +0 -0
  221. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/llm/output_fixing_runnable.py +0 -0
  222. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/llm/struct_token.py +0 -0
  223. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/llm/sy_langfuse.py +0 -0
  224. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/llm/tiktoken_cache/9b5ad71b2ce5302211f9c61530b329a4922fc6a4 +0 -0
  225. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/llm/tiktoken_cache/fb374d419588a4632f3f557e76b4b70aebbca790 +0 -0
  226. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/llm/token_usage_es_service.py +0 -0
  227. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/llm/token_usage_mysql_service.py +0 -0
  228. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/llm/token_utils.py +0 -0
  229. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/llm/usage_token.py +0 -0
  230. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/logging/__init__.py +0 -0
  231. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/logging/async_sql_logger.py +0 -0
  232. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/logging/kafka_log.py +0 -0
  233. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/logging/log_masker.py +0 -0
  234. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/logging/logger_levels.py +0 -0
  235. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/logging/logger_wrapper.py +0 -0
  236. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/logging/process_logger.py +0 -0
  237. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/logging/sql_logger.py +0 -0
  238. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/mcp_server/__init__.py +0 -0
  239. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/mcp_server/server.py +0 -0
  240. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/middleware/__init__.py +0 -0
  241. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/middleware/context.py +0 -0
  242. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/middleware/cors.py +0 -0
  243. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/middleware/docs.py +0 -0
  244. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/middleware/exception.py +0 -0
  245. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/middleware/middleware.py +0 -0
  246. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/middleware/monitor_memory.py +0 -0
  247. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/middleware/mq.py +0 -0
  248. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/middleware/sandbox.py +0 -0
  249. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/middleware/timeout.py +0 -0
  250. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/middleware/token_tracking.py +0 -0
  251. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/middleware/tool_result_truncation.py +0 -0
  252. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/middleware/traceid.py +0 -0
  253. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/models/__init__.py +0 -0
  254. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/models/base_http.py +0 -0
  255. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/models/log.py +0 -0
  256. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/models/mcp_server_config.py +0 -0
  257. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/models/mqlistener_config.py +0 -0
  258. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/models/mqmsg_model.py +0 -0
  259. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/models/mqsend_config.py +0 -0
  260. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/models/sandbox.py +0 -0
  261. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/models/sso_user.py +0 -0
  262. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/models/token_usage.py +0 -0
  263. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/models/token_usage_mysql.py +0 -0
  264. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/models/xxljob_handler_config.py +0 -0
  265. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/notice/__init__.py +0 -0
  266. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/notice/uvicorn_monitor.py +0 -0
  267. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/notice/wecom_message.py +0 -0
  268. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/rabbitmq/process_pool_consumer.py +0 -0
  269. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/rabbitmq/rabbitmq_client.py +0 -0
  270. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/rabbitmq/rabbitmq_pool.py +0 -0
  271. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/rabbitmq/rabbitmq_service.py +0 -0
  272. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/rabbitmq/rabbitmq_service_client_manager.py +0 -0
  273. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/rabbitmq/rabbitmq_service_connection_monitor.py +0 -0
  274. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/rabbitmq/rabbitmq_service_consumer_manager.py +0 -0
  275. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/rabbitmq/rabbitmq_service_core.py +0 -0
  276. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/rabbitmq/rabbitmq_service_producer_manager.py +0 -0
  277. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/sentry/__init__.py +0 -0
  278. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/sentry/sy_sentry.py +0 -0
  279. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/services.py +0 -0
  280. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/sse/__init__.py +0 -0
  281. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/sse/event.py +0 -0
  282. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/sse/sse.py +0 -0
  283. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/synacos/__init__.py +0 -0
  284. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/synacos/example.py +0 -0
  285. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/synacos/example2.py +0 -0
  286. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/synacos/feign.py +0 -0
  287. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/synacos/feign_client.py +0 -0
  288. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/synacos/nacos_client_base.py +0 -0
  289. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/synacos/nacos_config_manager.py +0 -0
  290. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/synacos/nacos_heartbeat_manager.py +0 -0
  291. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/synacos/nacos_service.py +0 -0
  292. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/synacos/nacos_service_discovery.py +0 -0
  293. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/synacos/nacos_service_registration.py +0 -0
  294. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/synacos/param.py +0 -0
  295. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/tests/deep_agent_server.py +0 -0
  296. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/tests/test_backend_factory_compat.py +0 -0
  297. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/tests/test_consistent_hash.py +0 -0
  298. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/tests/test_consume_dedup.py +0 -0
  299. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/tests/test_consumer_loss_rootcause.py +0 -0
  300. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/tests/test_consumer_recovery.py +0 -0
  301. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/tests/test_consumer_recovery_fix.py +0 -0
  302. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/tests/test_consumer_tags_sync.py +0 -0
  303. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/tests/test_deep_agent.py +0 -0
  304. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/tests/test_dynamic_max_tokens.py +0 -0
  305. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/tests/test_email.py +0 -0
  306. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/tests/test_encoding_cache.py +0 -0
  307. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/tests/test_env_tenant_helper.py +0 -0
  308. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/tests/test_exp_concurrent_migrate.py +0 -0
  309. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/tests/test_exp_delete_queue_with_consumers.py +0 -0
  310. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/tests/test_fault_injection_real.py +0 -0
  311. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/tests/test_fix_verification.py +0 -0
  312. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/tests/test_heartbeat_timeout.py +0 -0
  313. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/tests/test_integration_real_broker.py +0 -0
  314. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/tests/test_mcp_server.py +0 -0
  315. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/tests/test_minimax_reasoning.py +0 -0
  316. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/tests/test_mq.py +0 -0
  317. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/tests/test_mq_config_driven.py +0 -0
  318. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/tests/test_nacos_llm_real.py +0 -0
  319. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/tests/test_oa_login.py +0 -0
  320. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/tests/test_queue_priority_fallback.py +0 -0
  321. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/tests/test_queue_priority_upgrade_timing.py +0 -0
  322. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/tests/test_real_summarization.py +0 -0
  323. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/tests/test_reconnect_scenarios.py +0 -0
  324. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/tests/test_summarization_config.py +0 -0
  325. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/tests/test_summarization_real.py +0 -0
  326. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/tests/test_summary_leak_e2e.py +0 -0
  327. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/tests/test_upgrade_aio_pika.py +0 -0
  328. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/tests/test_upgrade_langgraph_stream.py +0 -0
  329. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/tests/test_upgrade_verification.py +0 -0
  330. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/tools/__init__.py +0 -0
  331. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/tools/async_utils.py +0 -0
  332. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/tools/docs.py +0 -0
  333. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/tools/env.py +0 -0
  334. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/tools/merge_headers.py +0 -0
  335. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/tools/snowflake.py +0 -0
  336. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/tools/syemail.py +0 -0
  337. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/tools/time_utils.py +0 -0
  338. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/tools/timing.py +0 -0
  339. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/tools/user_id.py +0 -0
  340. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/xxljob/__init__.py +0 -0
  341. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon/xxljob/xxljob_service.py +0 -0
  342. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon_python_lib.egg-info/dependency_links.txt +0 -0
  343. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon_python_lib.egg-info/entry_points.txt +0 -0
  344. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon_python_lib.egg-info/requires.txt +0 -0
  345. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/src/sycommon_python_lib.egg-info/top_level.txt +0 -0
  346. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/tests/test_acp_tool.py +0 -0
  347. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/tests/test_asyncio_logging.py +0 -0
  348. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/tests/test_config_change_notifier.py +0 -0
  349. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/tests/test_hotreload_snapshot.py +0 -0
  350. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/tests/test_llm_apikey_contextvar.py +0 -0
  351. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/tests/test_log_masker.py +0 -0
  352. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/tests/test_resilient_pg_saver.py +0 -0
  353. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/tests/test_sandbox_path_guard.py +0 -0
  354. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/tests/test_sensitive_guard.py +0 -0
  355. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/tests/test_simple_chat_agent.py +0 -0
  356. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/tests/test_skill_regex_upgrade.py +0 -0
  357. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/tests/test_skill_write_guard.py +0 -0
  358. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/tests/test_streaming_e2e.py +0 -0
  359. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/tests/test_sycli.py +0 -0
  360. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/tests/test_sync_skills_to_sandbox.py +0 -0
  361. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/tests/test_time_utils.py +0 -0
  362. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/tests/test_upload_concurrency.py +0 -0
  363. {sycommon_python_lib-0.2.8a5 → sycommon_python_lib-0.2.8a6}/tests/test_upload_e2e_http.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sycommon-python-lib
3
- Version: 0.2.8a5
3
+ Version: 0.2.8a6
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.8a5"
3
+ version = "0.2.8a6"
4
4
  description = "Add your description here"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.11"
@@ -1274,21 +1274,6 @@ async def create_deep_agent(
1274
1274
  on_evaluation=rubric_eval_collector.on_evaluation,
1275
1275
  ))
1276
1276
 
1277
- # SkillApiWhitelistMiddleware(旧管控层):已被出网收口取代——
1278
- # 沙箱网关(egress gateway)做 path 白名单+凭据注入,iptables 硬墙(egress_wall)
1279
- # 在内核层挡 node/裸socket。旧的 .wl 推送/sitecustomize monkeypatch/shell-guard
1280
- # 不再注册(子进程 env 零密钥后 sitecustomize 的 SYT_API_AUTHZ 注入也已由网关承接)。
1281
- # 回滚开关: 环境变量 SANDBOX_LEGACY_WHITELIST=1 时恢复注册(应急用)。
1282
- if sandbox_backend and os.environ.get("SANDBOX_LEGACY_WHITELIST", "") == "1":
1283
- try:
1284
- from sycommon.agent.middleware.skill_api_whitelist import (
1285
- SkillApiWhitelistMiddleware)
1286
- middleware_list.append(
1287
- SkillApiWhitelistMiddleware(sandbox_backend))
1288
- SYLogger.warning("[DeepAgent] 旧白名单中间件已启用(SANDBOX_LEGACY_WHITELIST=1 应急模式)")
1289
- except Exception as _wl_err:
1290
- SYLogger.warning(f"[DeepAgent] 技能接口白名单中间件加载失败(忽略): {_wl_err}")
1291
-
1292
1277
  agent_kwargs = {
1293
1278
  "model": raw_model,
1294
1279
  "tools": config.tools or [get_current_date],
@@ -13,8 +13,8 @@ EgressPolicy 来自沙箱自己的 Nacos dataId(shengye-platform-sandbox)的
13
13
  EgressPolicy 段(见 sycommon/config/EgressPolicyConfig.py),Nacos 热更新后
14
14
  调 refresh_egress_wall() 重配。
15
15
 
16
- 这是 L3/L4 内核级硬墙,语言无关、绕不过——比应用层 hook(sitecustomize/
17
- LD_PRELOAD/HTTPS_PROXY)强且无盲区。
16
+ 这是 L3/L4 内核级硬墙,语言无关、绕不过——比旧应用层 hook(已删的
17
+ monkeypatch/LD_PRELOAD 等)强且无盲区。
18
18
 
19
19
  设计要点:
20
20
  - owner-match(-m owner --uid-owner):只锁 child uid,沙箱服务进程(root/其它 uid)
@@ -6,7 +6,7 @@
6
6
  1. 按「目标 host → 凭据形态」注入正确凭据(SYT 用 Authorization Bearer +
7
7
  X-Sy-Api-Authz;OA 系用 SYU-Token + SYU-Url 改写;企微 gettoken 用
8
8
  URL query 的 corpid/corpsecret;内网服务无鉴权透传)。
9
- 2. 复用 skill_wl_check.match path 白名单校验,不在白名单 → 403。
9
+ 2. host/path 白名单校验(EgressPolicy 驱动),不在名单 → 403。
10
10
  3. 删子进程自带的凭据头(Authorization/SYU-Token/X-Sy-Api-Authz),由网关
11
11
  重新注入正确值(防子进程塞脏值/旧值)。
12
12
  4. 审计:每个请求记录 user/host/path/状态码/字节量。
@@ -240,7 +240,7 @@ def _check_allowlist(target_url: str, creds: dict,
240
240
 
241
241
 
242
242
  def _url_allowed(url: str, allowlist: list[str]) -> bool:
243
- """与 skill_wl_check._is_allowed 同构的 path 级前缀匹配(不依赖 env)。"""
243
+ """path 级前缀匹配(斜杠边界)。"""
244
244
  try:
245
245
  p = urlparse(url if "://" in url else "http://" + str(url))
246
246
  except Exception:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sycommon-python-lib
3
- Version: 0.2.8a5
3
+ Version: 0.2.8a6
4
4
  Summary: Add your description here
5
5
  Requires-Python: >=3.11
6
6
  Description-Content-Type: text/markdown
@@ -154,9 +154,6 @@ src/sycommon/agent/mcp/tool_loader.py
154
154
  src/sycommon/agent/middleware/model_request_prep.py
155
155
  src/sycommon/agent/middleware/sandbox_path_guard.py
156
156
  src/sycommon/agent/middleware/sensitive_guard.py
157
- src/sycommon/agent/middleware/sitecustomize.py
158
- src/sycommon/agent/middleware/skill_api_whitelist.py
159
- src/sycommon/agent/middleware/skill_wl_check.py
160
157
  src/sycommon/agent/middleware/skill_write_guard.py
161
158
  src/sycommon/agent/sandbox/__init__.py
162
159
  src/sycommon/agent/sandbox/consistent_hash.py
@@ -185,7 +182,6 @@ src/sycommon/config/PgConfig.py
185
182
  src/sycommon/config/RedisConfig.py
186
183
  src/sycommon/config/RerankerConfig.py
187
184
  src/sycommon/config/SentryConfig.py
188
- src/sycommon/config/SkillApiWhitelistConfig.py
189
185
  src/sycommon/config/XxlJobConfig.py
190
186
  src/sycommon/config/__init__.py
191
187
  src/sycommon/config/config_change_notifier.py
@@ -1,300 +0,0 @@
1
- """技能接口白名单客户端注入脚本(部署到沙箱 site-packages)。
2
-
3
- Python 解释器启动时(未传 -S)自动 import 本模块。它负责 Python HTTP 库的
4
- 请求拦截:
5
-
6
- 1. 读环境变量 SKILL_API_WHITELIST(JSON)。无此 env → 不管控(全放行,fail-open)。
7
- 2. monkeypatch urllib / httpx / requests / aiohttp,发请求前做 path 级前缀匹配,
8
- 未命中抛 PermissionError(LLM 能看到清晰错误)。
9
-
10
- ⚠️ shell 命令(curl/wget 等)的拦截【不】在本文件处理——sitecustomize 只在
11
- `python` 启动时执行,纯 shell 命令不会触发它。shell 拦截由主进程中间件把
12
- curl/wget 包装函数【内联】到每条 execute 命令前缀实现(见 skill_api_whitelist.py)。
13
-
14
- URL 匹配核心逻辑复用同目录 skill_wl_check.py。
15
-
16
- 另外提供【独立于白名单】的 header 注入:当环境变量 SYT_API_AUTHZ 非空时,
17
- 对 host 命中 SYT_BASE_URL 的请求自动补 X-Sy-Api-Authz 头。这是云平台网关的
18
- 鉴权要求,对所有沙箱技能请求生效(不门控白名单),由中间件无条件 export
19
- SYT_API_AUTHZ + 推送本 sitecustomize 触发。
20
-
21
- 注意:本模块在沙箱子进程里运行,不依赖主进程内存。配置全部来自环境变量。
22
- """
23
-
24
- import json
25
- import os
26
- import sys
27
- from urllib.parse import urlparse
28
-
29
- # SKILL_API_WHITELIST 存在即「启用管控」;allowlist 为空时「全拦截」。
30
- _ENABLED = "SKILL_API_WHITELIST" in os.environ
31
-
32
- # 把沙箱 site-packages 里存放本模块的目录加入 sys.path,以便 import skill_wl_check。
33
- _HERE = os.path.dirname(os.path.abspath(__file__))
34
- if _HERE not in sys.path:
35
- sys.path.insert(0, _HERE)
36
-
37
-
38
- def _load_check():
39
- """加载同目录 skill_wl_check,返回其 match 函数;失败返回 None。"""
40
- try:
41
- import skill_wl_check # type: ignore
42
- return skill_wl_check
43
- except Exception as e: # pragma: no cover
44
- sys.stderr.write("[sitecustomize] 加载 skill_wl_check 失败,白名单禁用: %s\n" % e)
45
- return None
46
-
47
-
48
- def _patch_urllib(match):
49
- import urllib.request
50
-
51
- _orig = urllib.request.urlopen
52
-
53
- def _urlopen(url, *args, **kwargs):
54
- actual = url.full_url if isinstance(url, urllib.request.Request) else url
55
- if actual and not match(str(actual)):
56
- raise PermissionError(
57
- "[SkillApiWhitelist] 拦截: URL 不在白名单内 (urlopen, %s)" % actual)
58
- return _orig(url, *args, **kwargs)
59
-
60
- urllib.request.urlopen = _urlopen
61
-
62
-
63
- def _patch_httpx(match):
64
- try:
65
- import httpx
66
- except ImportError:
67
- return
68
-
69
- _orig_sync = httpx.Client.send
70
-
71
- def _send(self, request, **kwargs):
72
- if not match(str(request.url)):
73
- raise PermissionError(
74
- "[SkillApiWhitelist] 拦截: URL 不在白名单内 (httpx, %s)" % request.url)
75
- return _orig_sync(self, request, **kwargs)
76
-
77
- httpx.Client.send = _send
78
-
79
- if hasattr(httpx, "AsyncClient"):
80
- _orig_async = httpx.AsyncClient.send
81
-
82
- async def _asend(self, request, **kwargs):
83
- if not match(str(request.url)):
84
- raise PermissionError(
85
- "[SkillApiWhitelist] 拦截: URL 不在白名单内 (httpx.async, %s)" % request.url)
86
- return await _orig_async(self, request, **kwargs)
87
-
88
- httpx.AsyncClient.send = _asend
89
-
90
-
91
- def _patch_requests(match):
92
- try:
93
- import requests
94
- except ImportError:
95
- return
96
-
97
- _orig = requests.Session.request
98
-
99
- def _request(self, method, url, *args, **kwargs):
100
- if not match(str(url)):
101
- raise PermissionError(
102
- "[SkillApiWhitelist] 拦截: URL 不在白名单内 (requests %s, %s)"
103
- % (method.upper(), url))
104
- return _orig(self, method, url, *args, **kwargs)
105
-
106
- requests.Session.request = _request
107
-
108
-
109
- def _patch_aiohttp(match):
110
- try:
111
- import aiohttp
112
- except ImportError:
113
- return
114
- if not hasattr(aiohttp.ClientSession, "_request"):
115
- return
116
-
117
- _orig = aiohttp.ClientSession._request
118
-
119
- async def _request(self, method, str_or_url, **kwargs):
120
- if not match(str(str_or_url)):
121
- raise PermissionError(
122
- "[SkillApiWhitelist] 拦截: URL 不在白名单内 (aiohttp %s, %s)"
123
- % (method, str_or_url))
124
- return await _orig(self, method, str_or_url, **kwargs)
125
-
126
- aiohttp.ClientSession._request = _request
127
-
128
-
129
- # =============== header 注入(独立于白名单)===============
130
- # 云平台网关要求请求带 X-Sy-Api-Authz 头。仅当 host 命中 SYT_BASE_URL 的 host
131
- # 才补该头,其它域名(内网 OCR / 企微 / 合同比对内网 / MCP 后端等)不注入。
132
- # 门控:环境变量 SYT_API_AUTHZ 非空。调用方已显式设过同名头则不覆盖。
133
-
134
- _AUTHZ_HEADER = "X-Sy-Api-Authz"
135
-
136
-
137
- def _syt_host():
138
- """解析 SYT_BASE_URL 的 host(小写)。失败返回 None。"""
139
- base = os.environ.get("SYT_BASE_URL", "").strip()
140
- if not base:
141
- return None
142
- try:
143
- return (urlparse(base).hostname or "").lower() or None
144
- except Exception:
145
- return None
146
-
147
-
148
- def _host_matches_syt(url) -> bool:
149
- """请求 URL 的 host 是否等于 SYT_BASE_URL 的 host。"""
150
- host = _syt_host()
151
- if not host:
152
- return False
153
- try:
154
- return (urlparse(str(url)).hostname or "").lower() == host
155
- except Exception:
156
- return False
157
-
158
-
159
- def _patch_urllib_hdr():
160
- import urllib.request
161
-
162
- _orig = urllib.request.urlopen
163
-
164
- def _urlopen(url, *args, **kwargs):
165
- # 只能给 Request 对象补头;裸 str URL 在 urlopen 层无 headers 概念,跳过
166
- if isinstance(url, urllib.request.Request) and _host_matches_syt(url.full_url):
167
- url.add_header(_AUTHZ_HEADER, os.environ["SYT_API_AUTHZ"])
168
- return _orig(url, *args, **kwargs)
169
-
170
- urllib.request.urlopen = _urlopen
171
-
172
-
173
- def _patch_requests_hdr():
174
- try:
175
- import requests
176
- except ImportError:
177
- return
178
-
179
- _orig = requests.Session.request
180
-
181
- def _request(self, method, url, *args, **kwargs):
182
- if _host_matches_syt(url):
183
- headers = kwargs.get("headers")
184
- if headers is None:
185
- headers = {}
186
- if isinstance(headers, dict):
187
- if _AUTHZ_HEADER not in headers:
188
- headers[_AUTHZ_HEADER] = os.environ["SYT_API_AUTHZ"]
189
- kwargs["headers"] = headers
190
- else:
191
- # list / 其它形态:保守起见交给底层,避免破坏既有结构
192
- pass
193
- return _orig(self, method, url, *args, **kwargs)
194
-
195
- requests.Session.request = _request
196
-
197
-
198
- def _patch_httpx_hdr():
199
- try:
200
- import httpx
201
- except ImportError:
202
- return
203
-
204
- def _apply(request):
205
- if request is not None and _host_matches_syt(request.url):
206
- request.headers.setdefault(_AUTHZ_HEADER, os.environ["SYT_API_AUTHZ"])
207
-
208
- _orig_sync = httpx.Client.send
209
-
210
- def _send(self, request, **kwargs):
211
- _apply(request)
212
- return _orig_sync(self, request, **kwargs)
213
-
214
- httpx.Client.send = _send
215
-
216
- if hasattr(httpx, "AsyncClient"):
217
- _orig_async = httpx.AsyncClient.send
218
-
219
- async def _asend(self, request, **kwargs):
220
- _apply(request)
221
- return await _orig_async(self, request, **kwargs)
222
-
223
- httpx.AsyncClient.send = _asend
224
-
225
-
226
- def _patch_aiohttp_hdr():
227
- try:
228
- import aiohttp
229
- except ImportError:
230
- return
231
- if not hasattr(aiohttp.ClientSession, "_request"):
232
- return
233
-
234
- _orig = aiohttp.ClientSession._request
235
-
236
- async def _request(self, method, str_or_url, **kwargs):
237
- if _host_matches_syt(str_or_url):
238
- headers = kwargs.get("headers")
239
- if isinstance(headers, dict):
240
- if _AUTHZ_HEADER not in headers:
241
- headers[_AUTHZ_HEADER] = os.environ["SYT_API_AUTHZ"]
242
- elif headers is None:
243
- kwargs["headers"] = {_AUTHZ_HEADER: os.environ["SYT_API_AUTHZ"]}
244
- else:
245
- # list / CIMultiDict 等其它形态:跳过,避免破坏结构
246
- pass
247
- return await _orig(self, method, str_or_url, **kwargs)
248
-
249
- aiohttp.ClientSession._request = _request
250
-
251
-
252
- def _install_header_injection():
253
- """装 header 注入 patch(独立于白名单)。
254
-
255
- 门控:环境变量 SYT_API_AUTHZ 非空。任一库 import 失败都不阻断。
256
- """
257
- val = os.environ.get("SYT_API_AUTHZ", "").strip()
258
- if not val:
259
- return
260
- if not _syt_host():
261
- sys.stderr.write(
262
- "[sitecustomize] SYT_API_AUTHZ 已设置但 SYT_BASE_URL 无法解析 host,"
263
- "跳过 header 注入\n")
264
- return
265
- _patch_urllib_hdr()
266
- _patch_requests_hdr()
267
- _patch_httpx_hdr()
268
- _patch_aiohttp_hdr()
269
-
270
-
271
- def _install():
272
- if not _ENABLED:
273
- return
274
- check = _load_check()
275
- if check is None:
276
- return
277
- # allowlist 为空(明确禁止)时也走校验——match 必然 False,从而全拦截。
278
- match = check.match
279
- _patch_urllib(match)
280
- _patch_httpx(match)
281
- _patch_requests(match)
282
- _patch_aiohttp(match)
283
-
284
-
285
- # 保留解析结果(供排查)
286
- try:
287
- _WHITELIST_RAW = json.loads(os.environ.get("SKILL_API_WHITELIST", "{}"))
288
- except Exception:
289
- _WHITELIST_RAW = {}
290
-
291
- try:
292
- _install()
293
- except Exception as _e: # 任何 patch 失败都不能阻断进程启动
294
- sys.stderr.write("[sitecustomize] 白名单安装失败(fail-open): %s\n" % _e)
295
-
296
- # header 注入独立于白名单,单独 try/except,互不影响
297
- try:
298
- _install_header_injection()
299
- except Exception as _e:
300
- sys.stderr.write("[sitecustomize] header 注入安装失败(fail-open): %s\n" % _e)