sycommon-python-lib 0.2.10a16__tar.gz → 0.2.10a17__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 (393) hide show
  1. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/PKG-INFO +14 -14
  2. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/pyproject.toml +14 -14
  3. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/agent/sandbox/file_ops.py +11 -0
  4. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/agent/sandbox/http_sandbox_backend.py +8 -0
  5. sycommon_python_lib-0.2.10a17/src/sycommon/alert/__init__.py +32 -0
  6. sycommon_python_lib-0.2.10a17/src/sycommon/alert/alert_sdk.py +71 -0
  7. sycommon_python_lib-0.2.10a17/src/sycommon/alert/ao.py +91 -0
  8. sycommon_python_lib-0.2.10a17/src/sycommon/alert/api.py +69 -0
  9. sycommon_python_lib-0.2.10a17/src/sycommon/alert/bridge.py +49 -0
  10. sycommon_python_lib-0.2.10a17/src/sycommon/alert/env.py +144 -0
  11. sycommon_python_lib-0.2.10a17/src/sycommon/alert/guard.py +70 -0
  12. sycommon_python_lib-0.2.10a17/src/sycommon/alert/monitor.py +169 -0
  13. sycommon_python_lib-0.2.10a17/src/sycommon/alert/queue.py +110 -0
  14. sycommon_python_lib-0.2.10a17/src/sycommon/alert/sdk.py +310 -0
  15. sycommon_python_lib-0.2.10a17/src/sycommon/alert/sdk_selfcheck.py +253 -0
  16. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/config/Config.py +112 -18
  17. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/logging/kafka_log.py +5 -2
  18. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/middleware/context.py +7 -0
  19. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/middleware/sandbox.py +32 -1
  20. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/middleware/traceid.py +9 -1
  21. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/models/sandbox.py +5 -1
  22. sycommon_python_lib-0.2.10a17/src/sycommon/rabbitmq/delay_queue.py +145 -0
  23. sycommon_python_lib-0.2.10a17/src/sycommon/rabbitmq/mq_store.py +271 -0
  24. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/rabbitmq/rabbitmq_client.py +40 -0
  25. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/rabbitmq/rabbitmq_service_producer_manager.py +18 -0
  26. sycommon_python_lib-0.2.10a17/src/sycommon/rabbitmq/topic_registry.py +82 -0
  27. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/services.py +26 -0
  28. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/synacos/feign.py +7 -1
  29. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/synacos/feign_client.py +13 -2
  30. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/tests/test_upgrade_aio_pika.py +2 -2
  31. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/tests/test_upgrade_verification.py +7 -7
  32. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon_python_lib.egg-info/PKG-INFO +14 -14
  33. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon_python_lib.egg-info/SOURCES.txt +14 -0
  34. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon_python_lib.egg-info/requires.txt +13 -13
  35. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/README.md +0 -0
  36. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/setup.cfg +0 -0
  37. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/command/__init__.py +0 -0
  38. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/command/cli.py +0 -0
  39. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/command/core/__init__.py +0 -0
  40. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/command/core/console.py +0 -0
  41. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/command/core/models.py +0 -0
  42. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/command/core/project.py +0 -0
  43. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/command/core/utils.py +0 -0
  44. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/command/templates/__init__.py +0 -0
  45. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/command/templates/agent/README.md.tpl +0 -0
  46. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/command/templates/agent/__init__.py +0 -0
  47. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/command/templates/agent/agent/__init__.py.tpl +0 -0
  48. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/command/templates/agent/agent/main_agent.py.tpl +0 -0
  49. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/command/templates/agent/agent/nodes/__init__.py.tpl +0 -0
  50. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/command/templates/agent/agent/nodes/example_node.py.tpl +0 -0
  51. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/command/templates/agent/agent/states/__init__.py.tpl +0 -0
  52. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/command/templates/agent/agent/states/agent_state.py.tpl +0 -0
  53. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/command/templates/agent/api/__init__.py.tpl +0 -0
  54. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/command/templates/agent/api/query.py.tpl +0 -0
  55. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/command/templates/agent/api/sse/__init__.py.tpl +0 -0
  56. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/command/templates/agent/api/sse/agent.py.tpl +0 -0
  57. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/command/templates/agent/app.py.tpl +0 -0
  58. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/command/templates/agent/client/__init__.py.tpl +0 -0
  59. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/command/templates/agent/db/__init__.py.tpl +0 -0
  60. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/command/templates/agent/db/model/__init__.py.tpl +0 -0
  61. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/command/templates/agent/db/model/entity.py.tpl +0 -0
  62. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/command/templates/agent/db/service.py.tpl +0 -0
  63. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/command/templates/agent/model/__init__.py.tpl +0 -0
  64. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/command/templates/agent/model/parse.py.tpl +0 -0
  65. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/command/templates/agent/tools/__init__.py.tpl +0 -0
  66. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/command/templates/agent/tools/mq.py.tpl +0 -0
  67. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/command/templates/base/.env.tpl +0 -0
  68. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/command/templates/base/.gitignore.tpl +0 -0
  69. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/command/templates/base/Dockerfile.tpl +0 -0
  70. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/command/templates/base/README.md.tpl +0 -0
  71. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/command/templates/base/__init__.py +0 -0
  72. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/command/templates/base/app.py.tpl +0 -0
  73. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/command/templates/base/app.yaml.tpl +0 -0
  74. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/command/templates/base/client/FileServiceClient.py.tpl +0 -0
  75. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/command/templates/base/client/__init__.py.tpl +0 -0
  76. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/command/templates/base/model/__init__.py.tpl +0 -0
  77. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/command/templates/base/model/file_info.py.tpl +0 -0
  78. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/command/templates/base/requirements.txt.tpl +0 -0
  79. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/command/templates/cli/README.md.tpl +0 -0
  80. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/command/templates/cli/__init__.py +0 -0
  81. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/command/templates/cli/app.py.tpl +0 -0
  82. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/command/templates/cli/commands/__init__.py.tpl +0 -0
  83. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/command/templates/cli/commands/hello.py.tpl +0 -0
  84. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/command/templates/cli/pyproject.toml.tpl +0 -0
  85. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/command/templates/cli/tools/__init__.py.tpl +0 -0
  86. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/command/templates/web/README.md.tpl +0 -0
  87. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/command/templates/web/__init__.py +0 -0
  88. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/command/templates/web/api/__init__.py.tpl +0 -0
  89. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/command/templates/web/api/echo.py.tpl +0 -0
  90. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/command/templates/web/api/sse/__init__.py.tpl +0 -0
  91. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/command/templates/web/api/sse/echo.py.tpl +0 -0
  92. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/command/templates/web/app.py.tpl +0 -0
  93. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/command/templates/web/client/__init__.py.tpl +0 -0
  94. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/command/templates/web/model/__init__.py.tpl +0 -0
  95. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/command/templates/web/tools/__init__.py.tpl +0 -0
  96. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/command/templates/web/tools/mq.py.tpl +0 -0
  97. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/nexus/__init__.py +0 -0
  98. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycli/__init__.py +0 -0
  99. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycli/__main__.py +0 -0
  100. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycli/acp/__init__.py +0 -0
  101. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycli/acp/config.py +0 -0
  102. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycli/acp/executor.py +0 -0
  103. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycli/acp/registry.py +0 -0
  104. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycli/acp/server.py +0 -0
  105. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycli/agents/__init__.py +0 -0
  106. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycli/agents/factory.py +0 -0
  107. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycli/agents/prompts.py +0 -0
  108. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycli/cdp/__init__.py +0 -0
  109. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycli/cdp/browser.py +0 -0
  110. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycli/cdp/capabilities/__init__.py +0 -0
  111. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycli/cdp/capabilities/console.py +0 -0
  112. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycli/cdp/capabilities/dom.py +0 -0
  113. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycli/cdp/capabilities/network.py +0 -0
  114. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycli/cdp/capabilities/page_errors.py +0 -0
  115. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycli/cdp/capabilities/performance.py +0 -0
  116. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycli/cdp/capabilities/screenshot.py +0 -0
  117. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycli/cdp/client.py +0 -0
  118. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycli/cdp/protocol.py +0 -0
  119. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycli/cdp/repl.py +0 -0
  120. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycli/cli.py +0 -0
  121. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycli/commands/__init__.py +0 -0
  122. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycli/commands/acp_cmd.py +0 -0
  123. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycli/commands/acp_serve_cmd.py +0 -0
  124. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycli/commands/cdp_cmd.py +0 -0
  125. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycli/commands/chat_cmd.py +0 -0
  126. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycli/commands/create_cmd.py +0 -0
  127. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycli/commands/evaluate_cmd.py +0 -0
  128. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycli/commands/init_cmd.py +0 -0
  129. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycli/commands/memory_cmd.py +0 -0
  130. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycli/commands/resume_cmd.py +0 -0
  131. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycli/commands/rollback_cmd.py +0 -0
  132. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycli/commands/run_cmd.py +0 -0
  133. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycli/core/__init__.py +0 -0
  134. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycli/core/backend.py +0 -0
  135. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycli/core/config.py +0 -0
  136. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycli/core/display.py +0 -0
  137. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycli/core/git_integration.py +0 -0
  138. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycli/core/llm.py +0 -0
  139. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycli/core/state.py +0 -0
  140. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycli/evaluate/__init__.py +0 -0
  141. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycli/evaluate/api_evaluator.py +0 -0
  142. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycli/memory/__init__.py +0 -0
  143. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycli/memory/compressor.py +0 -0
  144. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycli/memory/full.py +0 -0
  145. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycli/memory/hot.py +0 -0
  146. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycli/memory/manager.py +0 -0
  147. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycli/memory/warm.py +0 -0
  148. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycli/mode/__init__.py +0 -0
  149. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycli/mode/create.py +0 -0
  150. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycli/mode/optimize.py +0 -0
  151. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycli/models/__init__.py +0 -0
  152. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycli/models/config_models.py +0 -0
  153. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycli/rl/__init__.py +0 -0
  154. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycli/rl/baseline_tests.py +0 -0
  155. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycli/rl/checkpoint.py +0 -0
  156. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycli/rl/convergence.py +0 -0
  157. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycli/rl/diagnosis.py +0 -0
  158. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycli/rl/engine.py +0 -0
  159. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycli/rl/environment.py +0 -0
  160. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycli/rl/experience.py +0 -0
  161. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycli/rl/harness_prompts.py +0 -0
  162. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycli/rl/history.py +0 -0
  163. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycli/rl/optimization_logger.py +0 -0
  164. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycli/rl/pre_validation.py +0 -0
  165. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycli/rl/reward.py +0 -0
  166. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycli/rl/strategy_bandit.py +0 -0
  167. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycli/rl/strategy_generator.py +0 -0
  168. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycli/rl/strategy_prompts.py +0 -0
  169. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycli/simple_chat_agent.py +0 -0
  170. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycli/skills/__init__.py +0 -0
  171. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/__init__.py +0 -0
  172. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/agent/__init__.py +0 -0
  173. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/agent/acp/__init__.py +0 -0
  174. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/agent/acp/client.py +0 -0
  175. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/agent/acp/fetch.py +0 -0
  176. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/agent/acp/server_adapter.py +0 -0
  177. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/agent/acp/ssh_init.py +0 -0
  178. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/agent/acp/tool.py +0 -0
  179. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/agent/agent_manager.py +0 -0
  180. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/agent/chat_events.py +0 -0
  181. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/agent/deep_agent.py +0 -0
  182. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/agent/mcp/__init__.py +0 -0
  183. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/agent/mcp/models.py +0 -0
  184. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/agent/mcp/tool_loader.py +0 -0
  185. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/agent/middleware/model_request_prep.py +0 -0
  186. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/agent/middleware/sandbox_path_guard.py +0 -0
  187. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/agent/middleware/sensitive_guard.py +0 -0
  188. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/agent/middleware/skill_write_guard.py +0 -0
  189. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/agent/multi_agent_team.py +0 -0
  190. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/agent/reasoning_content_patch.py +0 -0
  191. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/agent/resume_compactor.py +0 -0
  192. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/agent/sandbox/__init__.py +0 -0
  193. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/agent/sandbox/consistent_hash.py +0 -0
  194. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/agent/sandbox/minio_sync.py +0 -0
  195. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/agent/sandbox/sandbox_pool.py +0 -0
  196. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/agent/sandbox/sandbox_recovery.py +0 -0
  197. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/agent/sandbox/session.py +0 -0
  198. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/agent/skills_retry_patch.py +0 -0
  199. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/agent/summarization_utils.py +0 -0
  200. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/auth/__init__.py +0 -0
  201. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/auth/ldap_service.py +0 -0
  202. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/auth/oa_cache.py +0 -0
  203. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/auth/oa_crypto.py +0 -0
  204. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/auth/oa_service.py +0 -0
  205. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/auth/wecom_ldap_service.py +0 -0
  206. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/config/ACPAgentConfig.py +0 -0
  207. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/config/DatabaseConfig.py +0 -0
  208. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/config/EgressPolicyConfig.py +0 -0
  209. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/config/ElasticsearchConfig.py +0 -0
  210. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/config/EmbeddingConfig.py +0 -0
  211. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/config/LLMConfig.py +0 -0
  212. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/config/LangfuseConfig.py +0 -0
  213. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/config/MQConfig.py +0 -0
  214. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/config/PgConfig.py +0 -0
  215. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/config/RedisConfig.py +0 -0
  216. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/config/RerankerConfig.py +0 -0
  217. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/config/SentryConfig.py +0 -0
  218. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/config/XxlJobConfig.py +0 -0
  219. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/config/__init__.py +0 -0
  220. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/config/config_change_notifier.py +0 -0
  221. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/database/async_base_db_service.py +0 -0
  222. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/database/async_database_service.py +0 -0
  223. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/database/base_db_service.py +0 -0
  224. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/database/database_service.py +0 -0
  225. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/database/elasticsearch_service.py +0 -0
  226. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/database/pg_checkpoint_service.py +0 -0
  227. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/database/redis_service.py +0 -0
  228. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/database/resilient_pg_saver.py +0 -0
  229. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/database/token_usage_db_service.py +0 -0
  230. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/health/__init__.py +0 -0
  231. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/health/health_check.py +0 -0
  232. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/health/metrics.py +0 -0
  233. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/health/ping.py +0 -0
  234. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/health/readiness.py +0 -0
  235. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/heartbeat_process/__init__.py +0 -0
  236. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/heartbeat_process/heartbeat_config.py +0 -0
  237. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/heartbeat_process/heartbeat_process_manager.py +0 -0
  238. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/heartbeat_process/heartbeat_process_worker.py +0 -0
  239. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/llm/__init__.py +0 -0
  240. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/llm/embedding.py +0 -0
  241. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/llm/get_llm.py +0 -0
  242. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/llm/llm_logger.py +0 -0
  243. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/llm/llm_tokens.py +0 -0
  244. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/llm/llm_with_token_tracking.py +0 -0
  245. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/llm/native_with_fallback_runnable.py +0 -0
  246. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/llm/output_fixing_runnable.py +0 -0
  247. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/llm/struct_token.py +0 -0
  248. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/llm/sy_langfuse.py +0 -0
  249. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/llm/tiktoken_cache/9b5ad71b2ce5302211f9c61530b329a4922fc6a4 +0 -0
  250. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/llm/tiktoken_cache/fb374d419588a4632f3f557e76b4b70aebbca790 +0 -0
  251. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/llm/token_usage_es_service.py +0 -0
  252. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/llm/token_usage_mysql_service.py +0 -0
  253. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/llm/token_utils.py +0 -0
  254. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/llm/usage_token.py +0 -0
  255. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/logging/__init__.py +0 -0
  256. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/logging/async_sql_logger.py +0 -0
  257. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/logging/bounded_kafka_sink.py +0 -0
  258. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/logging/bounded_stdout_sink.py +0 -0
  259. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/logging/log_masker.py +0 -0
  260. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/logging/logger_levels.py +0 -0
  261. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/logging/logger_wrapper.py +0 -0
  262. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/logging/process_logger.py +0 -0
  263. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/logging/sql_logger.py +0 -0
  264. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/mcp_server/__init__.py +0 -0
  265. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/mcp_server/server.py +0 -0
  266. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/middleware/__init__.py +0 -0
  267. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/middleware/cors.py +0 -0
  268. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/middleware/docs.py +0 -0
  269. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/middleware/egress_wall.py +0 -0
  270. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/middleware/exception.py +0 -0
  271. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/middleware/middleware.py +0 -0
  272. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/middleware/monitor_memory.py +0 -0
  273. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/middleware/mq.py +0 -0
  274. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/middleware/sandbox_gateway.py +0 -0
  275. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/middleware/timeout.py +0 -0
  276. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/middleware/token_tracking.py +0 -0
  277. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/middleware/tool_result_truncation.py +0 -0
  278. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/models/__init__.py +0 -0
  279. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/models/base_http.py +0 -0
  280. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/models/log.py +0 -0
  281. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/models/mcp_server_config.py +0 -0
  282. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/models/mqlistener_config.py +0 -0
  283. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/models/mqmsg_model.py +0 -0
  284. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/models/mqsend_config.py +0 -0
  285. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/models/sso_user.py +0 -0
  286. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/models/token_usage.py +0 -0
  287. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/models/token_usage_mysql.py +0 -0
  288. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/models/xxljob_handler_config.py +0 -0
  289. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/notice/__init__.py +0 -0
  290. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/notice/uvicorn_monitor.py +0 -0
  291. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/notice/wecom_message.py +0 -0
  292. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/rabbitmq/process_pool_consumer.py +0 -0
  293. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/rabbitmq/rabbit_management_client.py +0 -0
  294. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/rabbitmq/rabbitmq_pool.py +0 -0
  295. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/rabbitmq/rabbitmq_service.py +0 -0
  296. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/rabbitmq/rabbitmq_service_client_manager.py +0 -0
  297. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/rabbitmq/rabbitmq_service_connection_monitor.py +0 -0
  298. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/rabbitmq/rabbitmq_service_consumer_manager.py +0 -0
  299. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/rabbitmq/rabbitmq_service_core.py +0 -0
  300. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/sentry/__init__.py +0 -0
  301. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/sentry/sy_sentry.py +0 -0
  302. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/sse/__init__.py +0 -0
  303. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/sse/event.py +0 -0
  304. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/sse/sse.py +0 -0
  305. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/synacos/__init__.py +0 -0
  306. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/synacos/example.py +0 -0
  307. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/synacos/example2.py +0 -0
  308. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/synacos/nacos_client_base.py +0 -0
  309. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/synacos/nacos_config_manager.py +0 -0
  310. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/synacos/nacos_heartbeat_manager.py +0 -0
  311. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/synacos/nacos_service.py +0 -0
  312. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/synacos/nacos_service_discovery.py +0 -0
  313. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/synacos/nacos_service_registration.py +0 -0
  314. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/synacos/param.py +0 -0
  315. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/tests/deep_agent_server.py +0 -0
  316. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/tests/test_backend_factory_compat.py +0 -0
  317. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/tests/test_consistent_hash.py +0 -0
  318. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/tests/test_consume_dedup.py +0 -0
  319. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/tests/test_consumer_broker_health.py +0 -0
  320. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/tests/test_consumer_loss_rootcause.py +0 -0
  321. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/tests/test_consumer_recovery.py +0 -0
  322. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/tests/test_consumer_recovery_fix.py +0 -0
  323. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/tests/test_consumer_tags_sync.py +0 -0
  324. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/tests/test_db_keepalive.py +0 -0
  325. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/tests/test_deep_agent.py +0 -0
  326. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/tests/test_dynamic_max_tokens.py +0 -0
  327. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/tests/test_email.py +0 -0
  328. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/tests/test_encoding_cache.py +0 -0
  329. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/tests/test_env_tenant_helper.py +0 -0
  330. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/tests/test_exp_concurrent_migrate.py +0 -0
  331. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/tests/test_exp_delete_queue_with_consumers.py +0 -0
  332. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/tests/test_fault_injection_real.py +0 -0
  333. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/tests/test_fix_verification.py +0 -0
  334. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/tests/test_heartbeat_timeout.py +0 -0
  335. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/tests/test_integration_real_broker.py +0 -0
  336. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/tests/test_mcp_server.py +0 -0
  337. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/tests/test_minimax_reasoning.py +0 -0
  338. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/tests/test_mq.py +0 -0
  339. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/tests/test_mq_config_driven.py +0 -0
  340. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/tests/test_nacos_llm_real.py +0 -0
  341. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/tests/test_oa_login.py +0 -0
  342. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/tests/test_queue_priority_fallback.py +0 -0
  343. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/tests/test_queue_priority_upgrade_timing.py +0 -0
  344. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/tests/test_real_summarization.py +0 -0
  345. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/tests/test_reconnect_scenarios.py +0 -0
  346. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/tests/test_sandbox_glob_hardening.py +0 -0
  347. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/tests/test_services_plugin_defaults.py +0 -0
  348. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/tests/test_summarization_config.py +0 -0
  349. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/tests/test_summarization_real.py +0 -0
  350. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/tests/test_summary_leak_e2e.py +0 -0
  351. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/tests/test_upgrade_langgraph_stream.py +0 -0
  352. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/tools/__init__.py +0 -0
  353. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/tools/async_utils.py +0 -0
  354. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/tools/docs.py +0 -0
  355. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/tools/env.py +0 -0
  356. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/tools/merge_headers.py +0 -0
  357. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/tools/snowflake.py +0 -0
  358. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/tools/sso_token.py +0 -0
  359. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/tools/syemail.py +0 -0
  360. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/tools/time_utils.py +0 -0
  361. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/tools/timing.py +0 -0
  362. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/tools/user_id.py +0 -0
  363. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/xxljob/__init__.py +0 -0
  364. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon/xxljob/xxljob_service.py +0 -0
  365. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon_python_lib.egg-info/dependency_links.txt +0 -0
  366. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon_python_lib.egg-info/entry_points.txt +0 -0
  367. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/src/sycommon_python_lib.egg-info/top_level.txt +0 -0
  368. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/tests/test_acp_tool.py +0 -0
  369. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/tests/test_asyncio_logging.py +0 -0
  370. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/tests/test_config_change_notifier.py +0 -0
  371. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/tests/test_frame_alignment.py +0 -0
  372. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/tests/test_hotreload_snapshot.py +0 -0
  373. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/tests/test_kafka_upie_fix.py +0 -0
  374. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/tests/test_llm_apikey_contextvar.py +0 -0
  375. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/tests/test_log_masker.py +0 -0
  376. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/tests/test_print_capture.py +0 -0
  377. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/tests/test_resilient_pg_saver.py +0 -0
  378. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/tests/test_sandbox_path_guard.py +0 -0
  379. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/tests/test_sensitive_guard.py +0 -0
  380. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/tests/test_simple_chat_agent.py +0 -0
  381. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/tests/test_skill_regex_upgrade.py +0 -0
  382. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/tests/test_skill_write_guard.py +0 -0
  383. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/tests/test_sql_params_full.py +0 -0
  384. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/tests/test_streaming_e2e.py +0 -0
  385. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/tests/test_summary_echo_break_loop.py +0 -0
  386. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/tests/test_sycli.py +0 -0
  387. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/tests/test_sylogger_fixes.py +0 -0
  388. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/tests/test_sync_skills_to_sandbox.py +0 -0
  389. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/tests/test_time_utils.py +0 -0
  390. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/tests/test_traceid_omit_base64.py +0 -0
  391. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/tests/test_unicode_decode_regress.py +0 -0
  392. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/tests/test_upload_concurrency.py +0 -0
  393. {sycommon_python_lib-0.2.10a16 → sycommon_python_lib-0.2.10a17}/tests/test_upload_e2e_http.py +0 -0
@@ -1,25 +1,25 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sycommon-python-lib
3
- Version: 0.2.10a16
3
+ Version: 0.2.10a17
4
4
  Summary: Add your description here
5
5
  Requires-Python: >=3.11
6
6
  Description-Content-Type: text/markdown
7
- Requires-Dist: aio-pika==10.1.0
8
- Requires-Dist: aiohttp==3.14.4
7
+ Requires-Dist: aio-pika==10.1.1
8
+ Requires-Dist: aiohttp==3.14.5
9
9
  Requires-Dist: aiomysql==0.3.2
10
10
  Requires-Dist: anyio==4.15.1
11
11
  Requires-Dist: decorator==5.3.1
12
- Requires-Dist: deepagents==0.7.23
12
+ Requires-Dist: deepagents==0.7.28
13
13
  Requires-Dist: elasticsearch==9.5.1
14
14
  Requires-Dist: fastapi==0.143.0
15
15
  Requires-Dist: jinja2==3.1.6
16
16
  Requires-Dist: kafka-python==3.0.11
17
- Requires-Dist: langchain==1.4.4
18
- Requires-Dist: langchain-core==1.6.9
19
- Requires-Dist: langchain-openai==1.7.0
20
- Requires-Dist: langfuse==4.17.0
21
- Requires-Dist: langgraph==1.2.14
22
- Requires-Dist: langgraph-checkpoint-postgres==3.1.2
17
+ Requires-Dist: langchain==1.4.6
18
+ Requires-Dist: langchain-core==1.6.12
19
+ Requires-Dist: langchain-openai==1.7.2
20
+ Requires-Dist: langfuse==5.0.2
21
+ Requires-Dist: langgraph==1.2.16
22
+ Requires-Dist: langgraph-checkpoint-postgres==3.2.0
23
23
  Requires-Dist: langgraph-checkpoint-redis==0.5.2
24
24
  Requires-Dist: ldap3==2.9.1
25
25
  Requires-Dist: loguru==0.7.3
@@ -27,14 +27,14 @@ Requires-Dist: mysql-connector-python==26.7.0
27
27
  Requires-Dist: nacos-sdk-python<3.0,==2.0.11
28
28
  Requires-Dist: psutil==7.2.2
29
29
  Requires-Dist: pyxxl==0.4.8
30
- Requires-Dist: pydantic==2.14.0
30
+ Requires-Dist: pydantic==2.14.1
31
31
  Requires-Dist: python-dotenv==1.2.4
32
32
  Requires-Dist: python-multipart==0.0.32
33
33
  Requires-Dist: pyyaml==6.0.3
34
34
  Requires-Dist: redis==7.4.0
35
- Requires-Dist: sentry-sdk[fastapi]==2.71.0
36
- Requires-Dist: sqlalchemy[asyncio]==2.1.4
37
- Requires-Dist: starlette[full]==1.7.0
35
+ Requires-Dist: sentry-sdk[fastapi]==2.72.0
36
+ Requires-Dist: sqlalchemy[asyncio]==2.1.5
37
+ Requires-Dist: starlette[full]==1.9.0
38
38
  Requires-Dist: tiktoken==0.14.0
39
39
  Requires-Dist: uvicorn==0.54.0
40
40
  Requires-Dist: wecom-aibot-python-sdk==1.0.2
@@ -1,26 +1,26 @@
1
1
  [project]
2
2
  name = "sycommon-python-lib"
3
- version = "0.2.10a16"
3
+ version = "0.2.10a17"
4
4
  description = "Add your description here"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.11"
7
7
  dependencies = [
8
- "aio-pika==10.1.0",
9
- "aiohttp==3.14.4",
8
+ "aio-pika==10.1.1",
9
+ "aiohttp==3.14.5",
10
10
  "aiomysql==0.3.2",
11
11
  "anyio==4.15.1",
12
12
  "decorator==5.3.1",
13
- "deepagents==0.7.23",
13
+ "deepagents==0.7.28",
14
14
  "elasticsearch==9.5.1",
15
15
  "fastapi==0.143.0",
16
16
  "jinja2==3.1.6",
17
17
  "kafka-python==3.0.11",
18
- "langchain==1.4.4",
19
- "langchain-core==1.6.9",
20
- "langchain-openai==1.7.0",
21
- "langfuse==4.17.0",
22
- "langgraph==1.2.14",
23
- "langgraph-checkpoint-postgres==3.1.2",
18
+ "langchain==1.4.6",
19
+ "langchain-core==1.6.12",
20
+ "langchain-openai==1.7.2",
21
+ "langfuse==5.0.2",
22
+ "langgraph==1.2.16",
23
+ "langgraph-checkpoint-postgres==3.2.0",
24
24
  "langgraph-checkpoint-redis==0.5.2",
25
25
  "ldap3==2.9.1",
26
26
  "loguru==0.7.3",
@@ -28,14 +28,14 @@ dependencies = [
28
28
  "nacos-sdk-python==2.0.11,<3.0",
29
29
  "psutil==7.2.2",
30
30
  "pyxxl==0.4.8",
31
- "pydantic==2.14.0",
31
+ "pydantic==2.14.1",
32
32
  "python-dotenv==1.2.4",
33
33
  "python-multipart==0.0.32",
34
34
  "pyyaml==6.0.3",
35
35
  "redis==7.4.0",
36
- "sentry-sdk[fastapi]==2.71.0",
37
- "sqlalchemy[asyncio]==2.1.4",
38
- "starlette[full]==1.7.0",
36
+ "sentry-sdk[fastapi]==2.72.0",
37
+ "sqlalchemy[asyncio]==2.1.5",
38
+ "starlette[full]==1.9.0",
39
39
  "tiktoken==0.14.0",
40
40
  "uvicorn==0.54.0",
41
41
  "wecom-aibot-python-sdk==1.0.2",
@@ -755,12 +755,17 @@ class FileOperationsMixin:
755
755
  glob: str = None,
756
756
  *,
757
757
  max_count: int = None,
758
+ exclude_dirs: list[str] | None = None,
758
759
  ) -> GrepResult:
759
760
  """搜索文件内容
760
761
 
761
762
  max_count 对齐 deepagents 0.7.1:None=不限;设为 int 时服务端 `head -n N+1`
762
763
  早停,超出则返回前 N 条并置 truncated=True。框架反射签名发现支持后直接透传。
763
764
 
765
+ exclude_dirs 对齐 deepagents 0.7.28 grep_exclude_dirs:None=服务端默认
766
+ (.git/node_modules);[] = 不排除。类属性 grep_exclude_dirs 同名语义,
767
+ 供框架/上层按 BaseSandbox 惯例读取。
768
+
764
769
  错误前缀对齐 BaseSandbox._parse_grep_output:"Path '<path>': <reason>"。
765
770
  """
766
771
  try:
@@ -772,6 +777,7 @@ class FileOperationsMixin:
772
777
  "path": path,
773
778
  "glob": glob,
774
779
  "max_count": max_count,
780
+ "exclude_dirs": exclude_dirs,
775
781
  })
776
782
  # GrepResponse: {"matches": [...], "partial_error": "...", "error": "...", "truncated": bool}
777
783
  matches = [GrepMatch(**item) for item in result.get("matches", [])]
@@ -806,11 +812,15 @@ class FileOperationsMixin:
806
812
  *,
807
813
  max_count: int = None,
808
814
  timeout: int = None,
815
+ exclude_dirs: list[str] | None = None,
809
816
  ) -> GrepResult:
810
817
  """异步搜索文件内容
811
818
 
812
819
  max_count 对齐 deepagents 0.7.1:服务端早停 + truncated 标志。
813
820
 
821
+ exclude_dirs 对齐 deepagents 0.7.28 grep_exclude_dirs:None=服务端默认
822
+ (.git/node_modules);[] = 不排除。
823
+
814
824
  对齐 deepagents 0.7.1 BaseSandbox.agrep:用 asyncio.wait_for 包裹
815
825
  远程调用,超时返回 "grep timed out after Ns. Try a more specific
816
826
  pattern or a narrower path.",避免大仓库 grep 拖垮整条 async 链。
@@ -829,6 +839,7 @@ class FileOperationsMixin:
829
839
  "path": path,
830
840
  "glob": glob,
831
841
  "max_count": max_count,
842
+ "exclude_dirs": exclude_dirs,
832
843
  }, timeout=grep_timeout),
833
844
  timeout=grep_timeout,
834
845
  )
@@ -235,6 +235,14 @@ class HTTPSandboxBackend(FileOperationsMixin, BaseSandbox):
235
235
  # 生产 Linux 沙箱走 bash heredoc 执行命令(见 _build_execute_command),必然满足。
236
236
  enable_capture_offload = True
237
237
 
238
+ # 对齐 deepagents 0.7.28 BaseSandbox.grep_exclude_dirs:grep/agrep 默认跳过的
239
+ # 目录名(服务端 /v1/sandbox/grep 用 --exclude-dir 实现)。我们的 grep 走 HTTP
240
+ # 而非 BaseSandbox 的 shell 命令路径,BaseSandbox 的新 grep 实现不会生效,
241
+ # 但类属性保持同名同义:FilesystemMiddleware/上层框架按 BaseSandbox 惯例反射
242
+ # 读取时语义一致;调用方可用 exclude_dirs=None(服务端默认,即本属性内容)
243
+ # 或 [] (不排除)覆盖。服务端默认清单见 sandbox.py _DEFAULT_GREP_EXCLUDE_DIRS。
244
+ grep_exclude_dirs = (".git", "node_modules")
245
+
238
246
  """
239
247
 
240
248
  支持两种模式:
@@ -0,0 +1,32 @@
1
+ """sycommon.alert — 对齐 Java shengye-platform-alert-sdk(jar 反编译)。
2
+
3
+ 用法(对齐 Java AlertSdk/BizAlertSdk 静态调用):
4
+ from sycommon.alert import alert_sdk
5
+ alert_sdk.fatal("标题") # AlertSdk.fatal(title)
6
+ alert_sdk.critical("标题", "详情", e) # AlertSdk.critical(title, detail, e)
7
+ alert_sdk.biz_warn("TPL001", "标题", "详情") # BizAlertSdk.warn(templateNo, title, detail)
8
+
9
+ # @XxxAlert 注解等价(AlertAspect)
10
+ from sycommon.alert.guard import fatal_alert
11
+ @fatal_alert("任务失败", "TPL001")
12
+ async def run(): ...
13
+
14
+ # 监控接线(服务启动时一次;sy-alert.monitor.enable 控制)
15
+ from sycommon.alert.bridge import init_alert_monitors
16
+ await init_alert_monitors()
17
+ """
18
+ from sycommon.alert import alert_sdk # noqa: F401 (统一门面)
19
+ from sycommon.alert.ao import AlertAo # noqa: F401
20
+ from sycommon.alert.sdk import (alert, alert_access_url, alert_async, # noqa: F401
21
+ start, stop)
22
+
23
+ __all__ = [
24
+ "AlertAo",
25
+ "alert",
26
+ "alert_async",
27
+ "alert_access_url",
28
+ "start",
29
+ "stop",
30
+ "alert_sdk",
31
+ ]
32
+
@@ -0,0 +1,71 @@
1
+ """alert_sdk.py — Java AlertSdk / BizAlertSdk 静态门面的 Python 形态。
2
+
3
+ Java 侧 AlertSdk.fatal(...)/critical(...)/warn(...)/info(...) 与
4
+ BizAlertSdk.fatal(templateNo, ...) 的重载统一坍缩为关键字参数版:
5
+ fatal(title, detail="", err=None) / biz_fatal(template_no, title, detail="", err=None)。
6
+ """
7
+ from __future__ import annotations
8
+
9
+ from typing import Optional
10
+
11
+ from sycommon.alert import api
12
+
13
+
14
+ class AlertSdk:
15
+ """对齐 Java com.shengyecapital.alert.AlertSdk 静态方法集。
16
+
17
+ fatal/critical/warn/info 既可类方法调用(AlertSdk.fatal(...)),也提供
18
+ 模块级同名单名:from sycommon.alert import alert_sdk; alert_sdk.fatal(...)。
19
+ """
20
+
21
+ @staticmethod
22
+ def fatal(title: str, detail: str = "", err: Optional[Exception] = None) -> None:
23
+ api.fatal(title, detail, err)
24
+
25
+ @staticmethod
26
+ def critical(title: str, detail: str = "", err: Optional[Exception] = None) -> None:
27
+ api.critical(title, detail, err)
28
+
29
+ @staticmethod
30
+ def warn(title: str, detail: str = "", err: Optional[Exception] = None) -> None:
31
+ api.warn(title, detail, err)
32
+
33
+ @staticmethod
34
+ def info(title: str, detail: str = "") -> None:
35
+ """对齐 AlertSdk.info(title)/(title, detail) — Java 无 Throwable 重载。"""
36
+ api.info(title, detail)
37
+
38
+
39
+ class BizAlertSdk:
40
+ """对齐 Java com.shengyecapital.alert.BizAlertSdk(templateNo 前缀)。"""
41
+
42
+ @staticmethod
43
+ def fatal(template_no: str, title: str, detail: str = "",
44
+ err: Optional[Exception] = None) -> None:
45
+ api.biz_fatal(template_no, title, detail, err)
46
+
47
+ @staticmethod
48
+ def critical(template_no: str, title: str, detail: str = "",
49
+ err: Optional[Exception] = None) -> None:
50
+ api.biz_critical(template_no, title, detail, err)
51
+
52
+ @staticmethod
53
+ def warn(template_no: str, title: str, detail: str = "",
54
+ err: Optional[Exception] = None) -> None:
55
+ api.biz_warn(template_no, title, detail, err)
56
+
57
+ @staticmethod
58
+ def info(template_no: str, title: str, detail: str = "") -> None:
59
+ """对齐 BizAlertSdk.info(templateNo, title)/(…, detail) — 无 Throwable 重载。"""
60
+ api.biz_info(template_no, title, detail)
61
+
62
+
63
+ # 模块级单名快捷形态(Java AlertSdk.fatal 静态直呼的最短 Python 形态)。
64
+ fatal = AlertSdk.fatal
65
+ critical = AlertSdk.critical
66
+ warn = AlertSdk.warn
67
+ info = AlertSdk.info
68
+ biz_fatal = BizAlertSdk.fatal
69
+ biz_critical = BizAlertSdk.critical
70
+ biz_warn = BizAlertSdk.warn
71
+ biz_info = BizAlertSdk.info
@@ -0,0 +1,91 @@
1
+ """ao.py — AlertAo 值对象,对齐 Java com.shengyecapital.alert.vo.AlertAo(jar 反编译)。
2
+
3
+ 字段/优先级/比较序/getKeyMsg 与 Java 字节码逐条对齐:
4
+ - calc_priority: fatal=100 / critical=50 / warn=20 / 其余 0;
5
+ - compareTo: priority 升序 → time 升序 → id 升序(队列 first=最低最旧=驱逐
6
+ 候选,poll 最高优先先发);
7
+ - get_key_msg: [level serviceName templateNo alertTime title] 非空则以单个
8
+ 前导空格拼接,detail 非空则追加 " detail=" + detail(常量池 #231=b' ' /
9
+ #238=b' detail=' — 2026-10-19 常量池解析确认)。
10
+
11
+ JSON 序列化字段名为 Java getter 驼峰(hutool JSONUtil.toJsonStr),null 字段
12
+ 不输出(hutool 默认忽略 null)→ Pydantic exclude_none 同形。
13
+ """
14
+ from __future__ import annotations
15
+
16
+ from typing import ClassVar, Optional
17
+
18
+ from pydantic import BaseModel, ConfigDict
19
+
20
+
21
+ class AlertAo(BaseModel):
22
+ """告警值对象(Java vo.AlertAo 15 字段)。"""
23
+
24
+ model_config = ConfigDict(populate_by_name=True)
25
+
26
+ LEVEL_INFO: ClassVar[str] = "info"
27
+ LEVEL_WARN: ClassVar[str] = "warn"
28
+ LEVEL_CRITICAL: ClassVar[str] = "critical"
29
+ LEVEL_FATAL: ClassVar[str] = "fatal"
30
+
31
+ priority: int = 0
32
+ level: Optional[str] = None
33
+ serviceName: Optional[str] = None
34
+ serviceGroup: Optional[str] = None
35
+ templateNo: Optional[str] = None
36
+ title: Optional[str] = None
37
+ detail: Optional[str] = None
38
+ ip: Optional[str] = None
39
+ traceId: Optional[str] = None
40
+ env: Optional[str] = None
41
+ alertTime: Optional[str] = None
42
+ errorMsg: Optional[str] = None
43
+ time: Optional[int] = None # 入队毫秒时间戳
44
+ id: int = 0
45
+
46
+ def calc_priority(self) -> None:
47
+ """对齐 Java calcPriority():fatal→100 / critical→50 / warn→20 / 其他 0。"""
48
+ if self.level == self.LEVEL_FATAL:
49
+ self.priority = 100
50
+ elif self.level == self.LEVEL_CRITICAL:
51
+ self.priority = 50
52
+ elif self.level == self.LEVEL_WARN:
53
+ self.priority = 20
54
+ else:
55
+ self.priority = 0
56
+
57
+ def compare_to(self, other: "AlertAo") -> int:
58
+ """对齐 Java compareTo:None→1;priority 升序→time 升序→id 升序。"""
59
+ if other is None:
60
+ return 1
61
+ if self.priority != other.priority:
62
+ return -1 if self.priority < other.priority else 1
63
+ st = self.time if self.time is not None else 0
64
+ ot = other.time if other.time is not None else 0
65
+ if st != ot:
66
+ return -1 if st < ot else 1
67
+ return (self.id > other.id) - (self.id < other.id)
68
+
69
+ def get_key_msg(self) -> str:
70
+ """对齐 Java getKeyMsg():前导单空格 join,detail 段 " detail="。"""
71
+ parts: list[str] = []
72
+ for f in (self.level, self.serviceName, self.templateNo,
73
+ self.alertTime, self.title):
74
+ if f:
75
+ parts.append(" " + f)
76
+ if self.detail:
77
+ parts.append(" detail=" + self.detail)
78
+ return "".join(parts)
79
+
80
+ def to_wire(self) -> dict:
81
+ """出站 JSON 形态(hutool 默认:camel 字段 + 忽略 null)。"""
82
+ return self.model_dump(exclude_none=True)
83
+
84
+
85
+ def get_count_string(batch: list[AlertAo]) -> str:
86
+ """对齐 Java InnerSdk.getCountString:按级别计数拼一条汇总。"""
87
+ fatal = sum(1 for a in batch if a.level == AlertAo.LEVEL_FATAL)
88
+ critical = sum(1 for a in batch if a.level == AlertAo.LEVEL_CRITICAL)
89
+ warn = sum(1 for a in batch if a.level == AlertAo.LEVEL_WARN)
90
+ info = sum(1 for a in batch if a.level == AlertAo.LEVEL_INFO)
91
+ return f"致命{fatal}条 严重{critical}条 告警{warn}条 信息{info}条"
@@ -0,0 +1,69 @@
1
+ """api.py — 对齐 Java com.shengyecapital.alert.AlertSdk / BizAlertSdk 门面。
2
+
3
+ Java AlertSdk 重载矩阵(每级 4 个):fatal/critical/warn ×
4
+ (title)/(title,Throwable)/(title,detail)/(title,detail,Throwable);
5
+ info × (title)/(title,detail)。BizAlertSdk 同形但首参 templateNo。
6
+ 全部经 _alert_inner 组 AlertAo(level/title/detail/errorMsg=get_msg)→ InnerSdk.alert。
7
+ """
8
+ from __future__ import annotations
9
+
10
+ from typing import Optional
11
+
12
+ from sycommon.alert.ao import AlertAo
13
+ from sycommon.alert.sdk import alert
14
+ from sycommon.alert.sdk_selfcheck import get_msg
15
+
16
+ LEVEL_INFO = AlertAo.LEVEL_INFO
17
+ LEVEL_WARN = AlertAo.LEVEL_WARN
18
+ LEVEL_CRITICAL = AlertAo.LEVEL_CRITICAL
19
+ LEVEL_FATAL = AlertAo.LEVEL_FATAL
20
+
21
+
22
+ def _alert_inner(level: str, template_no: str, title: str, detail: str,
23
+ err: Optional[Exception]) -> None:
24
+ ao = AlertAo(level=level, templateNo=template_no or None,
25
+ title=title or None, detail=detail or None)
26
+ if err is not None:
27
+ ao.errorMsg = get_msg(err)
28
+ alert(ao)
29
+
30
+
31
+ # ---------------- AlertSdk ----------------
32
+
33
+ def fatal(title: str, detail: str = "", err: Optional[Exception] = None) -> None:
34
+ _alert_inner(LEVEL_FATAL, "", title, detail, err)
35
+
36
+
37
+ def critical(title: str, detail: str = "", err: Optional[Exception] = None) -> None:
38
+ _alert_inner(LEVEL_CRITICAL, "", title, detail, err)
39
+
40
+
41
+ def warn(title: str, detail: str = "", err: Optional[Exception] = None) -> None:
42
+ _alert_inner(LEVEL_WARN, "", title, detail, err)
43
+
44
+
45
+ def info(title: str, detail: str = "") -> None:
46
+ """对齐 AlertSdk.info(title)/(title, detail) — Java 无 Throwable 重载。"""
47
+ _alert_inner(LEVEL_INFO, "", title, detail, None)
48
+
49
+
50
+ # ---------------- BizAlertSdk ----------------
51
+
52
+ def biz_fatal(template_no: str, title: str, detail: str = "",
53
+ err: Optional[Exception] = None) -> None:
54
+ _alert_inner(LEVEL_FATAL, template_no, title, detail, err)
55
+
56
+
57
+ def biz_critical(template_no: str, title: str, detail: str = "",
58
+ err: Optional[Exception] = None) -> None:
59
+ _alert_inner(LEVEL_CRITICAL, template_no, title, detail, err)
60
+
61
+
62
+ def biz_warn(template_no: str, title: str, detail: str = "",
63
+ err: Optional[Exception] = None) -> None:
64
+ _alert_inner(LEVEL_WARN, template_no, title, detail, err)
65
+
66
+
67
+ def biz_info(template_no: str, title: str, detail: str = "") -> None:
68
+ """对齐 BizAlertSdk.info(templateNo, title)/(…, detail) — 无 Throwable 重载。"""
69
+ _alert_inner(LEVEL_INFO, template_no, title, detail, None)
@@ -0,0 +1,49 @@
1
+ """bridge.py — alert 包对外接线 helpers(对齐 Go 侧 infra/alert/bridge.go)。
2
+
3
+ 与 Java ApplicationContextInitializer 自动挂监控不同:显式接线。
4
+ 服务启动(事件循环就绪后)await init_alert_monitors() 一次,按
5
+ sy-alert.monitor.enable 决定是否挂 GC/DB 池扫描;DB 饱和度数据源经
6
+ register_db_stats 由 SQLAlchemy engine.pool.status() 提供。
7
+ """
8
+ from __future__ import annotations
9
+
10
+ import asyncio
11
+ import re
12
+
13
+ from sycommon.alert.monitor import register_db_stats, start_monitors
14
+ from sycommon.logging.kafka_log import SYLogger
15
+
16
+
17
+ def _sqlalchemy_pool_stats() -> dict:
18
+ """SQLAlchemy engine.pool.status() → {'in_use', 'max_open'}。
19
+
20
+ status() 形如 "Pool size: 10 Connections in pool: 2 Current Overflow: -8
21
+ Checked Out Connections: 0";in_use=checkedout,max_open=pool_size+max_overflow
22
+ (overflow 为负表示空闲位未用满)。engine 未初始化返回空 dict。
23
+ """
24
+ try:
25
+ from sycommon.database.database_service import DatabaseService
26
+ engine = DatabaseService.engine()
27
+ if engine is None:
28
+ return {}
29
+ m = re.search(r"Checked Out Connections:\s*(\d+)", engine.pool.status())
30
+ if not m:
31
+ return {}
32
+ in_use = int(m.group(1))
33
+ pool_size = getattr(engine.pool, 'size', lambda: 0)()
34
+ max_overflow = getattr(engine.pool, '_max_overflow', 0)
35
+ return {"in_use": in_use, "max_open": pool_size + max_overflow}
36
+ except Exception as e: # noqa: BLE001
37
+ SYLogger.warning(f"[alert] 读取数据库连接池状态失败: {e}")
38
+ return {}
39
+
40
+
41
+ async def init_alert_monitors() -> None:
42
+ """启动默认监控(GC + 连接池饱和度)。engine 未初始化时跳过池监控。"""
43
+ stats = _sqlalchemy_pool_stats()
44
+ if stats:
45
+ register_db_stats(_sqlalchemy_pool_stats)
46
+ start_monitors()
47
+
48
+
49
+ __all__ = ["init_alert_monitors", "register_db_stats"]
@@ -0,0 +1,144 @@
1
+ """env.py — 对齐 Java com.shengyecapital.alert.config.AlertEnv + AlertLocalIpUtil。
2
+
3
+ Java 侧取值链(ApplicationContextInitializer):appName←spring.application.name、
4
+ activeProfile←spring.cloud.nacos.config.namespace、sy-alert.* 配置经 Spring
5
+ Environment getProperty。Python 等价映射:Config()(app.yaml+nacos 共享配置落地)、
6
+ env 兜底;appName=Config Name(与 sso_token.app_name 同源);profile=
7
+ Config Nacos.namespaceId(env 兜底 MODE/ENV)。
8
+ """
9
+ from __future__ import annotations
10
+
11
+ import os
12
+ import socket
13
+ import threading
14
+ from typing import Optional
15
+
16
+ _local = threading.local()
17
+
18
+
19
+ def _cfg():
20
+ try:
21
+ from sycommon.config.Config import Config
22
+ return Config()
23
+ except Exception:
24
+ return None
25
+
26
+
27
+ def app_name_of_sdk() -> str:
28
+ """对齐 Java AlertEnv.getAppName(spring.application.name)。"""
29
+ cfg = _cfg()
30
+ if cfg is not None:
31
+ return cfg.config.get('Name', '') or ''
32
+ return ''
33
+
34
+
35
+ def active_profile() -> str:
36
+ """对齐 Java AlertEnv.getActiveProfile(spring.cloud.nacos.config.namespace)。
37
+
38
+ 测试可注入 _local.profile;生产链:Config Nacos.namespaceId → env MODE/ENV。
39
+ """
40
+ injected = getattr(_local, 'profile', None)
41
+ if injected is not None:
42
+ return injected
43
+ cfg = _cfg()
44
+ if cfg is not None:
45
+ ns = cfg.config.get('Nacos', {}).get('namespaceId', '')
46
+ if ns:
47
+ return ns
48
+ return os.getenv('MODE') or os.getenv('ENV') or ''
49
+
50
+
51
+ def set_active_profile_for_test(profile: str) -> None:
52
+ """线程内注入 profile(测试用;空串恢复)。"""
53
+ _local.profile = profile or None
54
+
55
+
56
+ def get_property(key: str, default: str = '') -> str:
57
+ """对齐 Java AlertEnv.getProperty(key, def) 的【配置源覆盖面】。
58
+
59
+ Java getProperty = Spring Environment.getProperty:统一抽象全部配置源 —
60
+ application.yml / nacos 配置中心(任一 dataId 同键)/ 系统属性 / 环境变量
61
+ (relaxed binding:SY_ALERT_MONITOR_ENABLE ↔ sy-alert.monitor.enable)。
62
+
63
+ Python 等价覆盖面(优先序对齐 Spring:nacos 各 dataId → 本地 yml → 环境变量):
64
+ 1. Config.read_key_layered 逐层下钻:项目 dataId(==Name)优先,其余
65
+ sharedConfigs 声明序(common.yml 等),本地 app.yaml 段兜底 — 与
66
+ Go ReadKeyLayered / Spring 逐属性覆盖一致(项目 dataId 只覆盖自己
67
+ 写了的键,共享受保护的键自动落到下层);
68
+ 2. 环境变量:key 点号/横线→下划线大写(sy-alert.monitor.enable →
69
+ SY_ALERT_MONITOR_ENABLE,等价 Spring relaxed binding)。
70
+ """
71
+ from sycommon.config.Config import Config
72
+ trimmed = key[len('sy-alert.'):] if key.startswith('sy-alert.') else key
73
+ try:
74
+ cfg = Config()
75
+ v, ok = cfg.read_key_layered('sy-alert', *trimmed.split('.'))
76
+ if ok and v is not None and v != '':
77
+ return str(v)
78
+ except Exception:
79
+ pass
80
+ env_key = key.replace('.', '_').replace('-', '_').upper()
81
+ env_val = os.getenv(env_key) or os.getenv(env_key.lower())
82
+ if env_val:
83
+ return env_val
84
+ return default
85
+
86
+
87
+ def get_bool(key: str, default: bool) -> bool:
88
+ """对齐 Java getBoolean 字节码:非空时仅 equalsIgnoreCase('true') 为真,
89
+ 其余任何值(含 'false'/'1'/'yes')都 False;空时返回 default。"""
90
+ v = get_property(key, '')
91
+ if v == '':
92
+ return default
93
+ return v.strip().lower() == 'true'
94
+
95
+
96
+ def get_int(key: str, default: int) -> int:
97
+ try:
98
+ return int(get_property(key, ''))
99
+ except (TypeError, ValueError):
100
+ return default
101
+
102
+
103
+ def get_float(key: str, default: float) -> float:
104
+ try:
105
+ return float(get_property(key, ''))
106
+ except (TypeError, ValueError):
107
+ return default
108
+
109
+
110
+ _ip_cache: Optional[str] = None
111
+ _ip_lock = threading.Lock()
112
+
113
+
114
+ def local_ip() -> str:
115
+ """对齐 Java AlertLocalIpUtil.getLocalIp():本机非环回 IPv4,进程内缓存。"""
116
+ global _ip_cache
117
+ with _ip_lock:
118
+ if _ip_cache is not None:
119
+ return _ip_cache
120
+ ip = _lookup_local_ip()
121
+ with _ip_lock:
122
+ _ip_cache = ip
123
+ return ip
124
+
125
+
126
+ def _lookup_local_ip() -> str:
127
+ try:
128
+ hostname = socket.gethostname()
129
+ # k8s pod 场景 hostname 即 pod ip 或可解析;优先 UDP connect 法(不发包)。
130
+ s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
131
+ try:
132
+ s.settimeout(0)
133
+ s.connect(('10.255.255.255', 1))
134
+ return s.getsockname()[0]
135
+ finally:
136
+ s.close()
137
+ except Exception:
138
+ pass
139
+ try:
140
+ for info in socket.getaddrinfo(hostname, None, socket.AF_INET):
141
+ return info[4][0]
142
+ except Exception:
143
+ pass
144
+ return ''