sycommon-python-lib 0.2.5a23__tar.gz → 0.2.5a25__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 (291) hide show
  1. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/PKG-INFO +1 -1
  2. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/pyproject.toml +1 -1
  3. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/agent/summarization_utils.py +65 -0
  4. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/models/mqlistener_config.py +2 -0
  5. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/rabbitmq/rabbitmq_client.py +125 -14
  6. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/rabbitmq/rabbitmq_service_client_manager.py +4 -0
  7. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/rabbitmq/rabbitmq_service_producer_manager.py +2 -1
  8. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon_python_lib.egg-info/PKG-INFO +1 -1
  9. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/README.md +0 -0
  10. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/setup.cfg +0 -0
  11. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/__init__.py +0 -0
  12. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/cli.py +0 -0
  13. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/core/__init__.py +0 -0
  14. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/core/console.py +0 -0
  15. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/core/models.py +0 -0
  16. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/core/project.py +0 -0
  17. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/core/utils.py +0 -0
  18. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/__init__.py +0 -0
  19. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/agent/README.md.tpl +0 -0
  20. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/agent/__init__.py +0 -0
  21. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/agent/agent/__init__.py.tpl +0 -0
  22. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/agent/agent/main_agent.py.tpl +0 -0
  23. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/agent/agent/nodes/__init__.py.tpl +0 -0
  24. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/agent/agent/nodes/example_node.py.tpl +0 -0
  25. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/agent/agent/states/__init__.py.tpl +0 -0
  26. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/agent/agent/states/agent_state.py.tpl +0 -0
  27. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/agent/api/__init__.py.tpl +0 -0
  28. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/agent/api/query.py.tpl +0 -0
  29. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/agent/api/sse/__init__.py.tpl +0 -0
  30. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/agent/api/sse/agent.py.tpl +0 -0
  31. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/agent/app.py.tpl +0 -0
  32. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/agent/client/__init__.py.tpl +0 -0
  33. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/agent/db/__init__.py.tpl +0 -0
  34. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/agent/db/model/__init__.py.tpl +0 -0
  35. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/agent/db/model/entity.py.tpl +0 -0
  36. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/agent/db/service.py.tpl +0 -0
  37. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/agent/model/__init__.py.tpl +0 -0
  38. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/agent/model/parse.py.tpl +0 -0
  39. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/agent/tools/__init__.py.tpl +0 -0
  40. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/agent/tools/mq.py.tpl +0 -0
  41. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/base/.env.tpl +0 -0
  42. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/base/.gitignore.tpl +0 -0
  43. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/base/Dockerfile.tpl +0 -0
  44. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/base/README.md.tpl +0 -0
  45. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/base/__init__.py +0 -0
  46. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/base/app.py.tpl +0 -0
  47. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/base/app.yaml.tpl +0 -0
  48. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/base/client/FileServiceClient.py.tpl +0 -0
  49. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/base/client/__init__.py.tpl +0 -0
  50. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/base/model/__init__.py.tpl +0 -0
  51. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/base/model/file_info.py.tpl +0 -0
  52. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/base/requirements.txt.tpl +0 -0
  53. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/cli/README.md.tpl +0 -0
  54. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/cli/__init__.py +0 -0
  55. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/cli/app.py.tpl +0 -0
  56. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/cli/commands/__init__.py.tpl +0 -0
  57. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/cli/commands/hello.py.tpl +0 -0
  58. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/cli/pyproject.toml.tpl +0 -0
  59. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/cli/tools/__init__.py.tpl +0 -0
  60. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/web/README.md.tpl +0 -0
  61. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/web/__init__.py +0 -0
  62. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/web/api/__init__.py.tpl +0 -0
  63. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/web/api/echo.py.tpl +0 -0
  64. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/web/api/sse/__init__.py.tpl +0 -0
  65. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/web/api/sse/echo.py.tpl +0 -0
  66. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/web/app.py.tpl +0 -0
  67. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/web/client/__init__.py.tpl +0 -0
  68. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/web/model/__init__.py.tpl +0 -0
  69. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/web/tools/__init__.py.tpl +0 -0
  70. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/web/tools/mq.py.tpl +0 -0
  71. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/nexus/__init__.py +0 -0
  72. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/__init__.py +0 -0
  73. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/__main__.py +0 -0
  74. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/agents/__init__.py +0 -0
  75. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/agents/factory.py +0 -0
  76. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/agents/prompts.py +0 -0
  77. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/cdp/__init__.py +0 -0
  78. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/cdp/browser.py +0 -0
  79. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/cdp/capabilities/__init__.py +0 -0
  80. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/cdp/capabilities/console.py +0 -0
  81. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/cdp/capabilities/dom.py +0 -0
  82. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/cdp/capabilities/network.py +0 -0
  83. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/cdp/capabilities/page_errors.py +0 -0
  84. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/cdp/capabilities/performance.py +0 -0
  85. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/cdp/capabilities/screenshot.py +0 -0
  86. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/cdp/client.py +0 -0
  87. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/cdp/protocol.py +0 -0
  88. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/cdp/repl.py +0 -0
  89. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/cli.py +0 -0
  90. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/commands/__init__.py +0 -0
  91. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/commands/cdp_cmd.py +0 -0
  92. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/commands/chat_cmd.py +0 -0
  93. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/commands/create_cmd.py +0 -0
  94. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/commands/evaluate_cmd.py +0 -0
  95. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/commands/init_cmd.py +0 -0
  96. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/commands/memory_cmd.py +0 -0
  97. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/commands/resume_cmd.py +0 -0
  98. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/commands/rollback_cmd.py +0 -0
  99. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/commands/run_cmd.py +0 -0
  100. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/core/__init__.py +0 -0
  101. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/core/backend.py +0 -0
  102. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/core/config.py +0 -0
  103. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/core/display.py +0 -0
  104. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/core/git_integration.py +0 -0
  105. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/core/llm.py +0 -0
  106. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/core/state.py +0 -0
  107. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/evaluate/__init__.py +0 -0
  108. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/evaluate/api_evaluator.py +0 -0
  109. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/memory/__init__.py +0 -0
  110. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/memory/compressor.py +0 -0
  111. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/memory/full.py +0 -0
  112. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/memory/hot.py +0 -0
  113. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/memory/manager.py +0 -0
  114. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/memory/warm.py +0 -0
  115. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/mode/__init__.py +0 -0
  116. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/mode/create.py +0 -0
  117. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/mode/optimize.py +0 -0
  118. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/models/__init__.py +0 -0
  119. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/models/config_models.py +0 -0
  120. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/rl/__init__.py +0 -0
  121. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/rl/baseline_tests.py +0 -0
  122. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/rl/checkpoint.py +0 -0
  123. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/rl/convergence.py +0 -0
  124. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/rl/diagnosis.py +0 -0
  125. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/rl/engine.py +0 -0
  126. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/rl/environment.py +0 -0
  127. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/rl/experience.py +0 -0
  128. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/rl/harness_prompts.py +0 -0
  129. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/rl/history.py +0 -0
  130. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/rl/optimization_logger.py +0 -0
  131. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/rl/pre_validation.py +0 -0
  132. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/rl/reward.py +0 -0
  133. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/rl/strategy_bandit.py +0 -0
  134. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/rl/strategy_generator.py +0 -0
  135. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/rl/strategy_prompts.py +0 -0
  136. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/skills/__init__.py +0 -0
  137. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/__init__.py +0 -0
  138. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/agent/__init__.py +0 -0
  139. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/agent/agent_manager.py +0 -0
  140. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/agent/chat_events.py +0 -0
  141. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/agent/deep_agent.py +0 -0
  142. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/agent/mcp/__init__.py +0 -0
  143. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/agent/mcp/models.py +0 -0
  144. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/agent/mcp/tool_loader.py +0 -0
  145. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/agent/multi_agent_team.py +0 -0
  146. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/agent/sandbox/__init__.py +0 -0
  147. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/agent/sandbox/file_ops.py +0 -0
  148. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/agent/sandbox/http_sandbox_backend.py +0 -0
  149. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/agent/sandbox/minio_sync.py +0 -0
  150. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/agent/sandbox/sandbox_pool.py +0 -0
  151. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/agent/sandbox/sandbox_recovery.py +0 -0
  152. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/agent/sandbox/session.py +0 -0
  153. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/auth/__init__.py +0 -0
  154. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/auth/ldap_service.py +0 -0
  155. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/auth/oa_cache.py +0 -0
  156. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/auth/oa_crypto.py +0 -0
  157. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/auth/oa_service.py +0 -0
  158. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/auth/wecom_ldap_service.py +0 -0
  159. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/config/Config.py +0 -0
  160. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/config/DatabaseConfig.py +0 -0
  161. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/config/ElasticsearchConfig.py +0 -0
  162. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/config/EmbeddingConfig.py +0 -0
  163. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/config/LLMConfig.py +0 -0
  164. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/config/LangfuseConfig.py +0 -0
  165. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/config/MQConfig.py +0 -0
  166. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/config/PgConfig.py +0 -0
  167. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/config/RedisConfig.py +0 -0
  168. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/config/RerankerConfig.py +0 -0
  169. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/config/SentryConfig.py +0 -0
  170. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/config/XxlJobConfig.py +0 -0
  171. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/config/__init__.py +0 -0
  172. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/database/async_base_db_service.py +0 -0
  173. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/database/async_database_service.py +0 -0
  174. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/database/base_db_service.py +0 -0
  175. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/database/database_service.py +0 -0
  176. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/database/elasticsearch_service.py +0 -0
  177. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/database/pg_checkpoint_service.py +0 -0
  178. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/database/redis_service.py +0 -0
  179. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/database/token_usage_db_service.py +0 -0
  180. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/health/__init__.py +0 -0
  181. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/health/health_check.py +0 -0
  182. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/health/metrics.py +0 -0
  183. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/health/ping.py +0 -0
  184. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/heartbeat_process/__init__.py +0 -0
  185. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/heartbeat_process/heartbeat_config.py +0 -0
  186. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/heartbeat_process/heartbeat_process_manager.py +0 -0
  187. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/heartbeat_process/heartbeat_process_worker.py +0 -0
  188. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/llm/__init__.py +0 -0
  189. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/llm/embedding.py +0 -0
  190. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/llm/get_llm.py +0 -0
  191. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/llm/llm_logger.py +0 -0
  192. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/llm/llm_tokens.py +0 -0
  193. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/llm/llm_with_token_tracking.py +0 -0
  194. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/llm/native_with_fallback_runnable.py +0 -0
  195. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/llm/output_fixing_runnable.py +0 -0
  196. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/llm/struct_token.py +0 -0
  197. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/llm/sy_langfuse.py +0 -0
  198. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/llm/tiktoken_cache/9b5ad71b2ce5302211f9c61530b329a4922fc6a4 +0 -0
  199. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/llm/tiktoken_cache/fb374d419588a4632f3f557e76b4b70aebbca790 +0 -0
  200. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/llm/token_usage_es_service.py +0 -0
  201. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/llm/token_usage_mysql_service.py +0 -0
  202. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/llm/usage_token.py +0 -0
  203. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/logging/__init__.py +0 -0
  204. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/logging/async_sql_logger.py +0 -0
  205. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/logging/kafka_log.py +0 -0
  206. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/logging/logger_levels.py +0 -0
  207. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/logging/logger_wrapper.py +0 -0
  208. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/logging/process_logger.py +0 -0
  209. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/logging/sql_logger.py +0 -0
  210. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/mcp_server/__init__.py +0 -0
  211. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/mcp_server/server.py +0 -0
  212. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/middleware/__init__.py +0 -0
  213. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/middleware/context.py +0 -0
  214. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/middleware/cors.py +0 -0
  215. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/middleware/docs.py +0 -0
  216. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/middleware/exception.py +0 -0
  217. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/middleware/middleware.py +0 -0
  218. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/middleware/monitor_memory.py +0 -0
  219. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/middleware/mq.py +0 -0
  220. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/middleware/sandbox.py +0 -0
  221. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/middleware/timeout.py +0 -0
  222. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/middleware/token_tracking.py +0 -0
  223. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/middleware/tool_result_truncation.py +0 -0
  224. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/middleware/traceid.py +0 -0
  225. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/models/__init__.py +0 -0
  226. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/models/base_http.py +0 -0
  227. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/models/log.py +0 -0
  228. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/models/mcp_server_config.py +0 -0
  229. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/models/mqmsg_model.py +0 -0
  230. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/models/mqsend_config.py +0 -0
  231. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/models/sandbox.py +0 -0
  232. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/models/sso_user.py +0 -0
  233. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/models/token_usage.py +0 -0
  234. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/models/token_usage_mysql.py +0 -0
  235. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/models/xxljob_handler_config.py +0 -0
  236. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/notice/__init__.py +0 -0
  237. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/notice/uvicorn_monitor.py +0 -0
  238. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/notice/wecom_message.py +0 -0
  239. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/rabbitmq/process_pool_consumer.py +0 -0
  240. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/rabbitmq/rabbitmq_pool.py +0 -0
  241. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/rabbitmq/rabbitmq_service.py +0 -0
  242. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/rabbitmq/rabbitmq_service_connection_monitor.py +0 -0
  243. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/rabbitmq/rabbitmq_service_consumer_manager.py +0 -0
  244. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/rabbitmq/rabbitmq_service_core.py +0 -0
  245. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/sentry/__init__.py +0 -0
  246. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/sentry/sy_sentry.py +0 -0
  247. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/services.py +0 -0
  248. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/sse/__init__.py +0 -0
  249. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/sse/event.py +0 -0
  250. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/sse/sse.py +0 -0
  251. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/synacos/__init__.py +0 -0
  252. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/synacos/example.py +0 -0
  253. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/synacos/example2.py +0 -0
  254. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/synacos/feign.py +0 -0
  255. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/synacos/feign_client.py +0 -0
  256. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/synacos/nacos_client_base.py +0 -0
  257. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/synacos/nacos_config_manager.py +0 -0
  258. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/synacos/nacos_heartbeat_manager.py +0 -0
  259. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/synacos/nacos_service.py +0 -0
  260. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/synacos/nacos_service_discovery.py +0 -0
  261. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/synacos/nacos_service_registration.py +0 -0
  262. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/synacos/param.py +0 -0
  263. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/tests/deep_agent_server.py +0 -0
  264. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/tests/test_consumer_recovery.py +0 -0
  265. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/tests/test_deep_agent.py +0 -0
  266. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/tests/test_dynamic_max_tokens.py +0 -0
  267. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/tests/test_email.py +0 -0
  268. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/tests/test_encoding_cache.py +0 -0
  269. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/tests/test_mcp_server.py +0 -0
  270. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/tests/test_minimax_reasoning.py +0 -0
  271. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/tests/test_mq.py +0 -0
  272. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/tests/test_oa_login.py +0 -0
  273. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/tests/test_real_summarization.py +0 -0
  274. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/tests/test_summarization_config.py +0 -0
  275. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/tests/test_summarization_real.py +0 -0
  276. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/tools/__init__.py +0 -0
  277. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/tools/async_utils.py +0 -0
  278. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/tools/docs.py +0 -0
  279. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/tools/env.py +0 -0
  280. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/tools/merge_headers.py +0 -0
  281. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/tools/snowflake.py +0 -0
  282. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/tools/syemail.py +0 -0
  283. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/tools/timing.py +0 -0
  284. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/xxljob/__init__.py +0 -0
  285. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/xxljob/xxljob_service.py +0 -0
  286. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon_python_lib.egg-info/SOURCES.txt +0 -0
  287. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon_python_lib.egg-info/dependency_links.txt +0 -0
  288. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon_python_lib.egg-info/entry_points.txt +0 -0
  289. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon_python_lib.egg-info/requires.txt +0 -0
  290. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon_python_lib.egg-info/top_level.txt +0 -0
  291. {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/tests/test_sycli.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sycommon-python-lib
3
- Version: 0.2.5a23
3
+ Version: 0.2.5a25
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.5a23"
3
+ version = "0.2.5a25"
4
4
  description = "Add your description here"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.11"
@@ -25,6 +25,50 @@ if TYPE_CHECKING:
25
25
 
26
26
  logger = logging.getLogger(__name__)
27
27
 
28
+ # 中文摘要提示词,替代 langchain DEFAULT_SUMMARY_PROMPT
29
+ # 使用自然段落格式,避免 SESSION INTENT / ARTIFACTS / NEXT STEPS 等英文标题泄漏到用户输出
30
+ CUSTOM_SUMMARY_PROMPT = """<role>
31
+ 上下文提取助手
32
+ </role>
33
+
34
+ <primary_objective>
35
+ 你的唯一目标是从下面的对话历史中提取最高质量、最相关的上下文信息。
36
+ </primary_objective>
37
+
38
+ <objective_information>
39
+ 你即将达到可接受的输入 token 总数,因此必须从对话历史中提取最高质量/最相关的信息。
40
+ 提取的上下文将替换下面的对话历史。因此,确保你提取的上下文仅包含对实现整体目标最重要的信息。
41
+ </objective_information>
42
+
43
+ <instructions>
44
+ 下面的对话历史将被你在此步骤中提取的上下文替换。
45
+ 你需要确保不会重复任何已完成的操作,因此你从对话历史中提取的上下文应集中于对整体目标最重要的信息。
46
+
47
+ 请用以下结构提取上下文,每个部分用中文自然段落描述,不要使用英文标题:
48
+
49
+ 【用户意图】
50
+ 简要描述用户的主要目标或请求,确保足够完整以理解整个会话的目的。
51
+
52
+ 【关键上下文】
53
+ 提取并记录对话历史中所有最重要的上下文信息,包括重要选择、结论或策略,以及关键决策背后的推理。记录被拒绝的选项及其原因。
54
+
55
+ 【相关文件】
56
+ 列出在本次对话中创建、修改或访问的文件、资源或工件。对于文件修改,列出具体文件路径并简要描述每个文件的变更。
57
+
58
+ 【待办事项】
59
+ 列出为达成用户意图仍需完成的具体任务,以及接下来应该做什么。
60
+ </instructions>
61
+
62
+ 用户将向你发送完整的消息历史,你需要从中提取上下文以创建替换内容。请仔细阅读所有内容,并深入思考哪些信息对整体目标最重要且应该被保存:
63
+
64
+ 请仔细阅读整个对话历史,提取最重要和最相关的上下文以替换对话历史,从而释放空间。
65
+ 仅回复提取的上下文,不要包含任何额外信息,也不要在提取的上下文前后添加任何文本。
66
+
67
+ <messages>
68
+ 待摘要的消息:
69
+ {messages}
70
+ </messages>""" # noqa: E501
71
+
28
72
 
29
73
  def _extract_last_usage_total_tokens(messages) -> int:
30
74
  """从消息历史中提取最后一条 AIMessage 的 usage_metadata.total_tokens。
@@ -135,6 +179,26 @@ async def _patched_awrap_model_call(self, request, handler):
135
179
 
136
180
  _OrigDeepAgentsSumm.awrap_model_call = _patched_awrap_model_call
137
181
 
182
+ # monkey-patch:将摘要注入消息改为中文包装,避免英文泄漏
183
+ _orig_build_new_messages = _OrigDeepAgentsSumm._build_new_messages_with_path
184
+
185
+
186
+ def _patched_build_new_messages(self, summary, file_path):
187
+ if file_path is not None:
188
+ content = (
189
+ "你正在一个已经被压缩的对话中继续回复用户。\n\n"
190
+ f"完整的对话历史已保存到 {file_path},如需查阅细节可以读取该文件。\n\n"
191
+ "以下是压缩后的对话摘要:\n\n"
192
+ f"<summary>\n{summary}\n</summary>"
193
+ )
194
+ else:
195
+ content = f"以下是到目前为止的对话摘要:\n\n{summary}"
196
+ from langchain_core.messages import HumanMessage
197
+ return [HumanMessage(content=content, additional_kwargs={"lc_source": "summarization"})]
198
+
199
+
200
+ _OrigDeepAgentsSumm._build_new_messages_with_path = _patched_build_new_messages
201
+
138
202
 
139
203
  def build_summarization_middleware(
140
204
  model: BaseChatModel,
@@ -180,6 +244,7 @@ def build_summarization_middleware(
180
244
  keep=("tokens", keep_tokens),
181
245
  token_counter=functools.partial(
182
246
  count_tokens_approximately, chars_per_token=2.0),
247
+ summary_prompt=CUSTOM_SUMMARY_PROMPT,
183
248
  trim_tokens_to_summarize=None,
184
249
  truncate_args_settings={
185
250
  "trigger": ("tokens", trigger_tokens),
@@ -32,6 +32,8 @@ class RabbitMQListenerConfig(BaseModel):
32
32
  auto_delete: bool = Field(False, description="是否自动删除队列")
33
33
  auto_parse_json: bool = Field(True, description="是否自动解析JSON消息")
34
34
  prefetch_count: int = Field(2, description="同时消费并发数(控制MQ预取与handler并发上限)")
35
+ max_priority: Optional[int] = Field(
36
+ None, description="队列支持的最大优先级(对应 x-max-priority)")
35
37
 
36
38
  class Config:
37
39
  """模型配置"""
@@ -42,6 +42,7 @@ class RabbitMQClient:
42
42
  auto_delete: bool = False,
43
43
  auto_parse_json: bool = True,
44
44
  create_if_not_exists: bool = True,
45
+ max_priority: Optional[int] = None,
45
46
  **kwargs,
46
47
  ):
47
48
  self.connection_pool = connection_pool
@@ -60,6 +61,7 @@ class RabbitMQClient:
60
61
  self.auto_delete = auto_delete
61
62
  self.auto_parse_json = auto_parse_json
62
63
  self.create_if_not_exists = create_if_not_exists
64
+ self.max_priority = max_priority
63
65
 
64
66
  # 资源状态
65
67
  self._channel: Optional[AbstractChannel] = None
@@ -91,6 +93,97 @@ class RabbitMQClient:
91
93
  except Exception:
92
94
  return False
93
95
 
96
+ async def _try_migrate_queue(self, original_error: Exception) -> bool:
97
+ """尝试迁移队列以支持 x-max-priority。
98
+
99
+ 当队列已存在但参数不匹配(PRECONDITION_FAILED)时,检查队列是否为空,
100
+ 为空则删除重建,否则跳过迁移。
101
+
102
+ Returns:
103
+ True 迁移成功,False 未迁移(需由调用方处理)
104
+ """
105
+ from aiormq.exceptions import ChannelPreconditionFailed
106
+
107
+ if not isinstance(original_error, ChannelPreconditionFailed):
108
+ return False
109
+
110
+ if self.max_priority is None:
111
+ return False
112
+
113
+ try:
114
+ # PRECONDITION_FAILED 会关闭当前 channel,需要用新 channel 检查队列状态
115
+ channel, _ = await self.connection_pool.acquire_channel()
116
+ try:
117
+ queue = await channel.declare_queue(
118
+ name=self.queue_name, passive=True
119
+ )
120
+ if queue.declaration_result:
121
+ message_count = queue.declaration_result.message_count
122
+ consumer_count = queue.declaration_result.consumer_count
123
+ else:
124
+ message_count = 0
125
+ consumer_count = 0
126
+ finally:
127
+ await channel.close()
128
+
129
+ if message_count > 0:
130
+ logger.warning(
131
+ f"队列 '{self.queue_name}' 迁移跳过: "
132
+ f"存在 {message_count} 条消息"
133
+ )
134
+ return False
135
+
136
+ logger.info(
137
+ f"开始迁移队列 '{self.queue_name}',添加 x-max-priority={self.max_priority}")
138
+
139
+ # 删除旧队列
140
+ channel, _ = await self.connection_pool.acquire_channel()
141
+ try:
142
+ await channel.queue_delete(
143
+ queue_name=self.queue_name,
144
+ if_unused=False,
145
+ if_empty=False,
146
+ )
147
+ finally:
148
+ await channel.close()
149
+
150
+ # 清理旧 channel(被 PRECONDITION_FAILED 关闭后残留)
151
+ if self._channel and not self._channel.is_closed:
152
+ try:
153
+ await self._channel.close()
154
+ except Exception:
155
+ pass
156
+ self._channel = None
157
+ self._exchange = None
158
+ self._queue = None
159
+
160
+ # 重建 self._channel(旧 channel 已被 PRECONDITION_FAILED 关闭)
161
+ self._channel, self._channel_conn = await self.connection_pool.acquire_channel()
162
+
163
+ # 重新声明交换机
164
+ self._exchange = await self._channel.declare_exchange(
165
+ name=self.exchange_name,
166
+ type=self.exchange_type,
167
+ durable=self.durable,
168
+ auto_delete=self.auto_delete,
169
+ )
170
+
171
+ # 重新声明带 priority 的队列
172
+ self._queue = await self._channel.declare_queue(
173
+ name=self.queue_name,
174
+ durable=self.durable,
175
+ auto_delete=self.auto_delete,
176
+ arguments={"x-max-priority": self.max_priority},
177
+ )
178
+ await self._queue.bind(exchange=self._exchange, routing_key=self.routing_key)
179
+ logger.info(
180
+ f"队列 '{self.queue_name}' 迁移成功,已添加 x-max-priority={self.max_priority}")
181
+ return True
182
+
183
+ except Exception as migrate_error:
184
+ logger.error(f"队列 '{self.queue_name}' 迁移失败: {migrate_error}")
185
+ return False
186
+
94
187
  async def _rebuild_resources(self) -> None:
95
188
  if not self._channel or self._channel.is_closed:
96
189
  raise RuntimeError("无有效通道,无法重建资源")
@@ -112,26 +205,32 @@ class RabbitMQClient:
112
205
  # 2. 声明队列 (仅消费者需要)
113
206
  # 【核心保留逻辑】只有当 queue_name 存在且符合消费者命名规范时,才初始化队列
114
207
  if self.queue_name and self.queue_name.endswith(f".{self.app_name}"):
208
+ queue_args = {}
209
+ if self.max_priority is not None:
210
+ queue_args["x-max-priority"] = self.max_priority
211
+
115
212
  try:
116
213
  self._queue = await self._channel.declare_queue(
117
214
  name=self.queue_name,
118
215
  durable=self.durable,
119
216
  auto_delete=self.auto_delete,
120
217
  passive=not self.create_if_not_exists,
218
+ arguments=queue_args or None,
121
219
  )
122
220
  await self._queue.bind(exchange=self._exchange, routing_key=self.routing_key)
123
221
  logger.debug(f"队列就绪: {self.queue_name}")
124
222
  except Exception as e:
125
- # === 关键处理逻辑 ===
126
- if self.create_if_not_exists:
127
- # 模式:自动创建。如果失败说明权限不足或服务器限制,属于严重错误
128
- logger.error(f"❌ 无法自动创建队列 '{self.queue_name}': {e}")
129
- raise
130
- else:
131
- # 模式:仅检查。队列不存在是预期内的(如生产者启动时队列未创建),跳过
223
+ if not self.create_if_not_exists:
132
224
  self._queue = None
133
225
  logger.warning(
134
226
  f"⚠️ 队列 '{self.queue_name}' 不存在或无权访问 (Passive模式),跳过绑定。")
227
+ return
228
+
229
+ # 尝试自动迁移:参数不匹配时删除重建
230
+ migrated = await self._try_migrate_queue(e)
231
+ if not migrated:
232
+ # 迁移失败(非参数不匹配 / 队列非空 / 有消费者),抛出原始异常
233
+ raise
135
234
  else:
136
235
  # 不符合命名规范或无队列名,清空队列引用
137
236
  self._queue = None
@@ -145,7 +244,8 @@ class RabbitMQClient:
145
244
  t.cancel()
146
245
  try:
147
246
  await asyncio.wait_for(
148
- asyncio.gather(*self._running_tasks, return_exceptions=True),
247
+ asyncio.gather(*self._running_tasks,
248
+ return_exceptions=True),
149
249
  timeout=5.0
150
250
  )
151
251
  except asyncio.TimeoutError:
@@ -350,16 +450,21 @@ class RabbitMQClient:
350
450
  if not self._queue and self.queue_name and self.queue_name.endswith(f".{self.app_name}"):
351
451
  logger.warning(f"队列对象在消费前为空,尝试强制初始化: {self.queue_name}")
352
452
  try:
453
+ queue_args = {}
454
+ if self.max_priority is not None:
455
+ queue_args["x-max-priority"] = self.max_priority
353
456
  self._queue = await self._channel.declare_queue(
354
457
  name=self.queue_name,
355
458
  durable=self.durable,
356
459
  auto_delete=self.auto_delete,
357
- passive=False, # 强制确保队列存在
460
+ passive=False,
461
+ arguments=queue_args or None,
358
462
  )
359
463
  await self._queue.bind(exchange=self._exchange, routing_key=self.routing_key)
360
464
  except Exception as e:
361
- logger.error(f"强制初始化队列失败: {e}")
362
- raise RuntimeError(f"无法初始化队列 {self.queue_name}")
465
+ migrated = await self._try_migrate_queue(e)
466
+ if not migrated:
467
+ raise RuntimeError(f"无法初始化队列 {self.queue_name}")
363
468
 
364
469
  if not self._queue:
365
470
  raise RuntimeError("未配置队列名或队列初始化失败")
@@ -396,6 +501,7 @@ class RabbitMQClient:
396
501
  content_type: str = "application/json",
397
502
  delivery_mode: DeliveryMode = DeliveryMode.PERSISTENT,
398
503
  retry_count: int = 3,
504
+ priority: Optional[int] = None,
399
505
  ) -> None:
400
506
  if self._closed:
401
507
  raise RuntimeError("客户端已关闭,无法发布消息")
@@ -415,8 +521,11 @@ class RabbitMQClient:
415
521
  logger.error(f"消息体序列化失败: {e}")
416
522
  raise
417
523
 
418
- message = Message(body=body, headers=headers or {},
524
+ msg_kwargs = dict(body=body, headers=headers or {},
419
525
  content_type=content_type, delivery_mode=delivery_mode)
526
+ if priority is not None:
527
+ msg_kwargs["priority"] = priority
528
+ message = Message(**msg_kwargs)
420
529
  last_exception = None
421
530
 
422
531
  for attempt in range(retry_count):
@@ -471,11 +580,13 @@ class RabbitMQClient:
471
580
  logger.info(f"等待 {len(self._running_tasks)} 个后台任务完成...")
472
581
  try:
473
582
  await asyncio.wait_for(
474
- asyncio.gather(*self._running_tasks, return_exceptions=True),
583
+ asyncio.gather(*self._running_tasks,
584
+ return_exceptions=True),
475
585
  timeout=15.0
476
586
  )
477
587
  except asyncio.TimeoutError:
478
- logger.warning(f"等待后台任务超时,剩余 {len(self._running_tasks)} 个任务将被丢弃")
588
+ logger.warning(
589
+ f"等待后台任务超时,剩余 {len(self._running_tasks)} 个任务将被丢弃")
479
590
  self._running_tasks.clear()
480
591
 
481
592
  if self._channel and not self._channel.is_closed:
@@ -183,6 +183,7 @@ class RabbitMQClientManager(RabbitMQCoreService):
183
183
  auto_parse_json=kwargs.get('auto_parse_json', True),
184
184
  create_if_not_exists=create_if_not_exists,
185
185
  prefetch_count=kwargs.get('prefetch_count', 2),
186
+ max_priority=kwargs.get('max_priority'),
186
187
  )
187
188
 
188
189
  # 4. 连接客户端
@@ -238,6 +239,9 @@ class RabbitMQClientManager(RabbitMQCoreService):
238
239
  client.queue_name = input_qn
239
240
 
240
241
  if await client.is_connected:
242
+ # 更新 max_priority(发送器先创建客户端时没有此参数)
243
+ if client_type == "listener" and 'max_priority' in kwargs:
244
+ client.max_priority = kwargs['max_priority']
241
245
  return client
242
246
  else:
243
247
  logger.info(f"客户端 '{client_name}' 连接已断开,重新创建")
@@ -218,7 +218,8 @@ class RabbitMQProducerManager(RabbitMQClientManager):
218
218
  await sender.publish(
219
219
  message_body=mq_message.model_dump_json(),
220
220
  headers=mq_header,
221
- content_type="application/json"
221
+ content_type="application/json",
222
+ priority=kwargs.get('priority')
222
223
  )
223
224
  logger.info(f"消息发送成功 (队列: {queue_name})")
224
225
  except Exception as e:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sycommon-python-lib
3
- Version: 0.2.5a23
3
+ Version: 0.2.5a25
4
4
  Summary: Add your description here
5
5
  Requires-Python: >=3.11
6
6
  Description-Content-Type: text/markdown