sycommon-python-lib 0.2.5a2__tar.gz → 0.2.5a3__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 (283) hide show
  1. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/PKG-INFO +1 -1
  2. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/pyproject.toml +1 -1
  3. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/agent/deep_agent.py +3 -0
  4. sycommon_python_lib-0.2.5a3/src/sycommon/tests/test_minimax_reasoning.py +290 -0
  5. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon_python_lib.egg-info/PKG-INFO +1 -1
  6. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon_python_lib.egg-info/SOURCES.txt +1 -0
  7. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/README.md +0 -0
  8. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/setup.cfg +0 -0
  9. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/__init__.py +0 -0
  10. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/cli.py +0 -0
  11. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/core/__init__.py +0 -0
  12. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/core/console.py +0 -0
  13. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/core/models.py +0 -0
  14. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/core/project.py +0 -0
  15. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/core/utils.py +0 -0
  16. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/__init__.py +0 -0
  17. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/agent/README.md.tpl +0 -0
  18. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/agent/__init__.py +0 -0
  19. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/agent/agent/__init__.py.tpl +0 -0
  20. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/agent/agent/main_agent.py.tpl +0 -0
  21. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/agent/agent/nodes/__init__.py.tpl +0 -0
  22. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/agent/agent/nodes/example_node.py.tpl +0 -0
  23. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/agent/agent/states/__init__.py.tpl +0 -0
  24. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/agent/agent/states/agent_state.py.tpl +0 -0
  25. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/agent/api/__init__.py.tpl +0 -0
  26. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/agent/api/query.py.tpl +0 -0
  27. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/agent/api/sse/__init__.py.tpl +0 -0
  28. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/agent/api/sse/agent.py.tpl +0 -0
  29. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/agent/app.py.tpl +0 -0
  30. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/agent/client/__init__.py.tpl +0 -0
  31. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/agent/db/__init__.py.tpl +0 -0
  32. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/agent/db/model/__init__.py.tpl +0 -0
  33. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/agent/db/model/entity.py.tpl +0 -0
  34. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/agent/db/service.py.tpl +0 -0
  35. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/agent/model/__init__.py.tpl +0 -0
  36. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/agent/model/parse.py.tpl +0 -0
  37. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/agent/tools/__init__.py.tpl +0 -0
  38. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/agent/tools/mq.py.tpl +0 -0
  39. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/base/.env.tpl +0 -0
  40. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/base/.gitignore.tpl +0 -0
  41. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/base/Dockerfile.tpl +0 -0
  42. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/base/README.md.tpl +0 -0
  43. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/base/__init__.py +0 -0
  44. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/base/app.py.tpl +0 -0
  45. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/base/app.yaml.tpl +0 -0
  46. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/base/client/FileServiceClient.py.tpl +0 -0
  47. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/base/client/__init__.py.tpl +0 -0
  48. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/base/model/__init__.py.tpl +0 -0
  49. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/base/model/file_info.py.tpl +0 -0
  50. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/base/requirements.txt.tpl +0 -0
  51. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/cli/README.md.tpl +0 -0
  52. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/cli/__init__.py +0 -0
  53. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/cli/app.py.tpl +0 -0
  54. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/cli/commands/__init__.py.tpl +0 -0
  55. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/cli/commands/hello.py.tpl +0 -0
  56. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/cli/pyproject.toml.tpl +0 -0
  57. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/cli/tools/__init__.py.tpl +0 -0
  58. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/web/README.md.tpl +0 -0
  59. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/web/__init__.py +0 -0
  60. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/web/api/__init__.py.tpl +0 -0
  61. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/web/api/echo.py.tpl +0 -0
  62. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/web/api/sse/__init__.py.tpl +0 -0
  63. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/web/api/sse/echo.py.tpl +0 -0
  64. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/web/app.py.tpl +0 -0
  65. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/web/client/__init__.py.tpl +0 -0
  66. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/web/model/__init__.py.tpl +0 -0
  67. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/web/tools/__init__.py.tpl +0 -0
  68. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/web/tools/mq.py.tpl +0 -0
  69. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/nexus/__init__.py +0 -0
  70. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/__init__.py +0 -0
  71. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/__main__.py +0 -0
  72. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/agents/__init__.py +0 -0
  73. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/agents/factory.py +0 -0
  74. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/agents/prompts.py +0 -0
  75. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/cdp/__init__.py +0 -0
  76. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/cdp/browser.py +0 -0
  77. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/cdp/capabilities/__init__.py +0 -0
  78. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/cdp/capabilities/console.py +0 -0
  79. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/cdp/capabilities/dom.py +0 -0
  80. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/cdp/capabilities/network.py +0 -0
  81. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/cdp/capabilities/page_errors.py +0 -0
  82. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/cdp/capabilities/performance.py +0 -0
  83. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/cdp/capabilities/screenshot.py +0 -0
  84. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/cdp/client.py +0 -0
  85. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/cdp/protocol.py +0 -0
  86. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/cdp/repl.py +0 -0
  87. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/cli.py +0 -0
  88. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/commands/__init__.py +0 -0
  89. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/commands/cdp_cmd.py +0 -0
  90. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/commands/chat_cmd.py +0 -0
  91. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/commands/create_cmd.py +0 -0
  92. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/commands/evaluate_cmd.py +0 -0
  93. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/commands/init_cmd.py +0 -0
  94. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/commands/memory_cmd.py +0 -0
  95. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/commands/resume_cmd.py +0 -0
  96. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/commands/rollback_cmd.py +0 -0
  97. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/commands/run_cmd.py +0 -0
  98. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/core/__init__.py +0 -0
  99. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/core/backend.py +0 -0
  100. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/core/config.py +0 -0
  101. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/core/display.py +0 -0
  102. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/core/git_integration.py +0 -0
  103. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/core/llm.py +0 -0
  104. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/core/state.py +0 -0
  105. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/evaluate/__init__.py +0 -0
  106. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/evaluate/api_evaluator.py +0 -0
  107. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/memory/__init__.py +0 -0
  108. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/memory/compressor.py +0 -0
  109. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/memory/full.py +0 -0
  110. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/memory/hot.py +0 -0
  111. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/memory/manager.py +0 -0
  112. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/memory/warm.py +0 -0
  113. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/mode/__init__.py +0 -0
  114. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/mode/create.py +0 -0
  115. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/mode/optimize.py +0 -0
  116. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/models/__init__.py +0 -0
  117. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/models/config_models.py +0 -0
  118. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/rl/__init__.py +0 -0
  119. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/rl/baseline_tests.py +0 -0
  120. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/rl/checkpoint.py +0 -0
  121. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/rl/convergence.py +0 -0
  122. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/rl/diagnosis.py +0 -0
  123. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/rl/engine.py +0 -0
  124. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/rl/environment.py +0 -0
  125. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/rl/experience.py +0 -0
  126. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/rl/harness_prompts.py +0 -0
  127. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/rl/history.py +0 -0
  128. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/rl/optimization_logger.py +0 -0
  129. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/rl/pre_validation.py +0 -0
  130. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/rl/reward.py +0 -0
  131. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/rl/strategy_bandit.py +0 -0
  132. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/rl/strategy_generator.py +0 -0
  133. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/rl/strategy_prompts.py +0 -0
  134. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/skills/__init__.py +0 -0
  135. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/__init__.py +0 -0
  136. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/agent/__init__.py +0 -0
  137. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/agent/agent_manager.py +0 -0
  138. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/agent/chat_events.py +0 -0
  139. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/agent/mcp/__init__.py +0 -0
  140. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/agent/mcp/models.py +0 -0
  141. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/agent/mcp/tool_loader.py +0 -0
  142. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/agent/multi_agent_team.py +0 -0
  143. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/agent/sandbox/__init__.py +0 -0
  144. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/agent/sandbox/file_ops.py +0 -0
  145. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/agent/sandbox/http_sandbox_backend.py +0 -0
  146. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/agent/sandbox/minio_sync.py +0 -0
  147. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/agent/sandbox/sandbox_pool.py +0 -0
  148. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/agent/sandbox/sandbox_recovery.py +0 -0
  149. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/agent/sandbox/session.py +0 -0
  150. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/agent/summarization_utils.py +0 -0
  151. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/auth/__init__.py +0 -0
  152. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/auth/ldap_service.py +0 -0
  153. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/auth/oa_cache.py +0 -0
  154. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/auth/oa_crypto.py +0 -0
  155. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/auth/oa_service.py +0 -0
  156. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/auth/wecom_ldap_service.py +0 -0
  157. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/config/Config.py +0 -0
  158. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/config/DatabaseConfig.py +0 -0
  159. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/config/ElasticsearchConfig.py +0 -0
  160. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/config/EmbeddingConfig.py +0 -0
  161. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/config/LLMConfig.py +0 -0
  162. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/config/LangfuseConfig.py +0 -0
  163. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/config/MQConfig.py +0 -0
  164. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/config/PgConfig.py +0 -0
  165. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/config/RedisConfig.py +0 -0
  166. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/config/RerankerConfig.py +0 -0
  167. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/config/SentryConfig.py +0 -0
  168. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/config/XxlJobConfig.py +0 -0
  169. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/config/__init__.py +0 -0
  170. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/database/async_base_db_service.py +0 -0
  171. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/database/async_database_service.py +0 -0
  172. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/database/base_db_service.py +0 -0
  173. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/database/database_service.py +0 -0
  174. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/database/elasticsearch_service.py +0 -0
  175. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/database/pg_checkpoint_service.py +0 -0
  176. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/database/redis_service.py +0 -0
  177. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/database/token_usage_db_service.py +0 -0
  178. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/health/__init__.py +0 -0
  179. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/health/health_check.py +0 -0
  180. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/health/metrics.py +0 -0
  181. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/health/ping.py +0 -0
  182. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/heartbeat_process/__init__.py +0 -0
  183. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/heartbeat_process/heartbeat_config.py +0 -0
  184. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/heartbeat_process/heartbeat_process_manager.py +0 -0
  185. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/heartbeat_process/heartbeat_process_worker.py +0 -0
  186. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/llm/__init__.py +0 -0
  187. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/llm/embedding.py +0 -0
  188. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/llm/get_llm.py +0 -0
  189. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/llm/llm_logger.py +0 -0
  190. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/llm/llm_tokens.py +0 -0
  191. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/llm/llm_with_token_tracking.py +0 -0
  192. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/llm/native_with_fallback_runnable.py +0 -0
  193. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/llm/output_fixing_runnable.py +0 -0
  194. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/llm/struct_token.py +0 -0
  195. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/llm/sy_langfuse.py +0 -0
  196. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/llm/token_usage_es_service.py +0 -0
  197. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/llm/token_usage_mysql_service.py +0 -0
  198. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/llm/usage_token.py +0 -0
  199. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/logging/__init__.py +0 -0
  200. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/logging/async_sql_logger.py +0 -0
  201. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/logging/kafka_log.py +0 -0
  202. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/logging/logger_levels.py +0 -0
  203. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/logging/logger_wrapper.py +0 -0
  204. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/logging/process_logger.py +0 -0
  205. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/logging/sql_logger.py +0 -0
  206. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/middleware/__init__.py +0 -0
  207. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/middleware/background_execution.py +0 -0
  208. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/middleware/context.py +0 -0
  209. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/middleware/cors.py +0 -0
  210. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/middleware/docs.py +0 -0
  211. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/middleware/exception.py +0 -0
  212. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/middleware/middleware.py +0 -0
  213. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/middleware/monitor_memory.py +0 -0
  214. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/middleware/mq.py +0 -0
  215. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/middleware/sandbox.py +0 -0
  216. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/middleware/timeout.py +0 -0
  217. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/middleware/token_tracking.py +0 -0
  218. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/middleware/tool_result_truncation.py +0 -0
  219. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/middleware/traceid.py +0 -0
  220. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/models/__init__.py +0 -0
  221. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/models/base_http.py +0 -0
  222. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/models/log.py +0 -0
  223. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/models/mqlistener_config.py +0 -0
  224. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/models/mqmsg_model.py +0 -0
  225. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/models/mqsend_config.py +0 -0
  226. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/models/sandbox.py +0 -0
  227. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/models/sso_user.py +0 -0
  228. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/models/token_usage.py +0 -0
  229. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/models/token_usage_mysql.py +0 -0
  230. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/models/xxljob_handler_config.py +0 -0
  231. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/notice/__init__.py +0 -0
  232. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/notice/uvicorn_monitor.py +0 -0
  233. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/notice/wecom_message.py +0 -0
  234. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/rabbitmq/process_pool_consumer.py +0 -0
  235. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/rabbitmq/rabbitmq_client.py +0 -0
  236. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/rabbitmq/rabbitmq_pool.py +0 -0
  237. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/rabbitmq/rabbitmq_service.py +0 -0
  238. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/rabbitmq/rabbitmq_service_client_manager.py +0 -0
  239. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/rabbitmq/rabbitmq_service_connection_monitor.py +0 -0
  240. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/rabbitmq/rabbitmq_service_consumer_manager.py +0 -0
  241. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/rabbitmq/rabbitmq_service_core.py +0 -0
  242. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/rabbitmq/rabbitmq_service_producer_manager.py +0 -0
  243. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/sentry/__init__.py +0 -0
  244. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/sentry/sy_sentry.py +0 -0
  245. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/services.py +0 -0
  246. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/sse/__init__.py +0 -0
  247. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/sse/event.py +0 -0
  248. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/sse/sse.py +0 -0
  249. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/synacos/__init__.py +0 -0
  250. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/synacos/example.py +0 -0
  251. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/synacos/example2.py +0 -0
  252. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/synacos/feign.py +0 -0
  253. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/synacos/feign_client.py +0 -0
  254. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/synacos/nacos_client_base.py +0 -0
  255. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/synacos/nacos_config_manager.py +0 -0
  256. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/synacos/nacos_heartbeat_manager.py +0 -0
  257. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/synacos/nacos_service.py +0 -0
  258. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/synacos/nacos_service_discovery.py +0 -0
  259. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/synacos/nacos_service_registration.py +0 -0
  260. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/synacos/param.py +0 -0
  261. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/tests/deep_agent_server.py +0 -0
  262. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/tests/test_deep_agent.py +0 -0
  263. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/tests/test_email.py +0 -0
  264. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/tests/test_mq.py +0 -0
  265. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/tests/test_oa_login.py +0 -0
  266. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/tests/test_real_summarization.py +0 -0
  267. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/tests/test_summarization_config.py +0 -0
  268. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/tests/test_summarization_real.py +0 -0
  269. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/tools/__init__.py +0 -0
  270. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/tools/async_utils.py +0 -0
  271. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/tools/docs.py +0 -0
  272. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/tools/env.py +0 -0
  273. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/tools/merge_headers.py +0 -0
  274. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/tools/snowflake.py +0 -0
  275. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/tools/syemail.py +0 -0
  276. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/tools/timing.py +0 -0
  277. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/xxljob/__init__.py +0 -0
  278. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/xxljob/xxljob_service.py +0 -0
  279. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon_python_lib.egg-info/dependency_links.txt +0 -0
  280. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon_python_lib.egg-info/entry_points.txt +0 -0
  281. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon_python_lib.egg-info/requires.txt +0 -0
  282. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon_python_lib.egg-info/top_level.txt +0 -0
  283. {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/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.5a2
3
+ Version: 0.2.5a3
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.5a2"
3
+ version = "0.2.5a3"
4
4
  description = "Add your description here"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.11"
@@ -484,6 +484,9 @@ class DeepAgent:
484
484
  SYLogger.warning(f"[DeepAgent] Token 兜底统计失败: {te}")
485
485
 
486
486
  event = ChatEventBuilder.done()
487
+ if total_input_tokens > 0 or total_output_tokens > 0:
488
+ event.data["input_tokens"] = total_input_tokens
489
+ event.data["output_tokens"] = total_output_tokens
487
490
  if on_event:
488
491
  await on_event(event)
489
492
  yield event
@@ -0,0 +1,290 @@
1
+ """
2
+ MiniMax2.5 模型推理内容(reasoning_content)测试
3
+
4
+ 测试 MiniMax2.5 模型的流式输出是否正确返回 reasoning_content,
5
+ 以及 deep_agent 是否正确将其包装为 AI_CHUNK 事件。
6
+
7
+ 使用方式:
8
+ cd sycommon-python-lib
9
+ PYTHONPATH=src python -m src.sycommon.tests.test_minimax_reasoning
10
+ """
11
+
12
+ import asyncio
13
+ import json
14
+ from langchain.chat_models import init_chat_model
15
+ from langchain_core.messages import HumanMessage, SystemMessage
16
+
17
+ # MiniMax2.5 模型配置
18
+ MODEL = "MiniMax2.5"
19
+ PROVIDER = "openai"
20
+ BASE_URL = "http://221.130.59.59:8888/8vllm/v1"
21
+ API_KEY = "-"
22
+ MAX_TOKENS = 128000
23
+
24
+
25
+ def create_llm(streaming: bool = False, thinking: bool = True):
26
+ """创建 MiniMax2.5 LLM 实例"""
27
+ extra_body = {
28
+ "top_k": 20,
29
+ "min_p": 0.0,
30
+ "repetition_penalty": 1.0,
31
+ }
32
+
33
+ if thinking:
34
+ extra_body["chat_template_kwargs"] = {"enable_thinking": True}
35
+ temperature = 0.6
36
+ top_p = 0.95
37
+ presence_penalty = 0.0
38
+ else:
39
+ extra_body["chat_template_kwargs"] = {"enable_thinking": False}
40
+ temperature = 0.7
41
+ top_p = 0.8
42
+ presence_penalty = 1.5
43
+
44
+ if streaming:
45
+ extra_body["stream_options"] = {"include_usage": True}
46
+
47
+ return init_chat_model(
48
+ model_provider=PROVIDER,
49
+ model=MODEL,
50
+ base_url=BASE_URL,
51
+ api_key=API_KEY,
52
+ max_tokens=MAX_TOKENS,
53
+ streaming=streaming,
54
+ temperature=temperature,
55
+ top_p=top_p,
56
+ presence_penalty=presence_penalty,
57
+ extra_body=extra_body,
58
+ timeout=60,
59
+ )
60
+
61
+
62
+ async def test_non_stream_basic():
63
+ """测试非流式基本调用"""
64
+ print("\n" + "=" * 60)
65
+ print("测试1: 非流式基本调用(thinking=True)")
66
+ print("=" * 60)
67
+
68
+ llm = create_llm(streaming=False, thinking=True)
69
+ messages = [
70
+ SystemMessage(content="你是一个有用的助手,使用中文回答。"),
71
+ HumanMessage(content="1+1等于几?请简短回答。"),
72
+ ]
73
+
74
+ response = await llm.ainvoke(messages)
75
+
76
+ print(f"类型: {type(response).__name__}")
77
+ print(f"内容: {response.content[:500]}")
78
+
79
+ # 检查 reasoning_content
80
+ reasoning = getattr(response, "reasoning_content", None)
81
+ kwargs_reasoning = getattr(response, "additional_kwargs", {}).get(
82
+ "reasoning_content", None
83
+ )
84
+ print(f"reasoning_content 属性: {repr(reasoning)[:200] if reasoning else 'None'}")
85
+ print(f"additional_kwargs.reasoning_content: {repr(kwargs_reasoning)[:200] if kwargs_reasoning else 'None'}")
86
+
87
+ # 检查 usage
88
+ usage = getattr(response, "usage_metadata", None)
89
+ print(f"usage_metadata: {usage}")
90
+
91
+ assert response.content, "响应内容为空"
92
+ print("[PASS] 非流式调用成功\n")
93
+
94
+
95
+ async def test_non_stream_no_thinking():
96
+ """测试非流式无思考模式"""
97
+ print("=" * 60)
98
+ print("测试2: 非流式调用(thinking=False)")
99
+ print("=" * 60)
100
+
101
+ llm = create_llm(streaming=False, thinking=False)
102
+ messages = [HumanMessage(content="今天星期几?简短回答。")]
103
+
104
+ response = await llm.ainvoke(messages)
105
+
106
+ print(f"内容: {response.content[:500]}")
107
+
108
+ reasoning = getattr(response, "reasoning_content", None)
109
+ kwargs_reasoning = getattr(response, "additional_kwargs", {}).get(
110
+ "reasoning_content", None
111
+ )
112
+ print(f"reasoning_content: {repr(reasoning)[:200] if reasoning else 'None'}")
113
+ print(f"additional_kwargs.reasoning_content: {repr(kwargs_reasoning)[:200] if kwargs_reasoning else 'None'}")
114
+
115
+ print("[PASS] 无思考模式调用成功\n")
116
+
117
+
118
+ async def test_stream_with_reasoning():
119
+ """测试流式输出 + reasoning_content"""
120
+ print("=" * 60)
121
+ print("测试3: 流式调用(thinking=True)- 检查 reasoning_content")
122
+ print("=" * 60)
123
+
124
+ llm = create_llm(streaming=True, thinking=True)
125
+ messages = [
126
+ SystemMessage(content="你是一个有用的助手,使用中文回答。"),
127
+ HumanMessage(content="请思考一下:一个笼子里有鸡和兔,共10个头,26条腿,鸡和兔各几只?"),
128
+ ]
129
+
130
+ reasoning_chunks = []
131
+ content_chunks = []
132
+ chunk_types = {}
133
+
134
+ async for chunk in llm.astream(messages):
135
+ chunk_type = type(chunk).__name__
136
+
137
+ # 统计 chunk 类型
138
+ chunk_types[chunk_type] = chunk_types.get(chunk_type, 0) + 1
139
+
140
+ # 提取 reasoning_content
141
+ reasoning = getattr(chunk, "reasoning_content", None)
142
+ kwargs_reasoning = getattr(chunk, "additional_kwargs", {}).get(
143
+ "reasoning_content", None
144
+ )
145
+
146
+ if reasoning:
147
+ reasoning_chunks.append(reasoning)
148
+ # 只打印前几条
149
+ if len(reasoning_chunks) <= 5:
150
+ print(f" [reasoning] {repr(reasoning[:100])}")
151
+
152
+ if kwargs_reasoning:
153
+ reasoning_chunks.append(kwargs_reasoning)
154
+ if len(reasoning_chunks) <= 5:
155
+ print(f" [kwargs.reasoning] {repr(kwargs_reasoning[:100])}")
156
+
157
+ # 提取内容
158
+ if chunk.content:
159
+ content_chunks.append(chunk.content)
160
+
161
+ print(f"\n--- 流式统计 ---")
162
+ print(f"chunk 类型分布: {chunk_types}")
163
+ print(f"reasoning chunks 数量: {len(reasoning_chunks)}")
164
+ print(f"content chunks 数量: {len(content_chunks)}")
165
+
166
+ if reasoning_chunks:
167
+ full_reasoning = "".join(reasoning_chunks)
168
+ print(f"完整 reasoning (前500字): {full_reasoning[:500]}")
169
+ else:
170
+ print("WARNING: 未收到 reasoning_content")
171
+
172
+ full_content = "".join(content_chunks)
173
+ print(f"完整 content (前500字): {full_content[:500]}")
174
+
175
+ print("[PASS] 流式调用完成\n")
176
+
177
+
178
+ async def test_stream_no_thinking():
179
+ """测试流式输出无思考模式"""
180
+ print("=" * 60)
181
+ print("测试4: 流式调用(thinking=False)")
182
+ print("=" * 60)
183
+
184
+ llm = create_llm(streaming=True, thinking=False)
185
+ messages = [HumanMessage(content="用一句话介绍北京。")]
186
+
187
+ reasoning_chunks = []
188
+ content_chunks = []
189
+
190
+ async for chunk in llm.astream(messages):
191
+ reasoning = getattr(chunk, "reasoning_content", None) or getattr(
192
+ chunk, "additional_kwargs", {}
193
+ ).get("reasoning_content", None)
194
+
195
+ if reasoning:
196
+ reasoning_chunks.append(reasoning)
197
+ if chunk.content:
198
+ content_chunks.append(chunk.content)
199
+
200
+ full_content = "".join(content_chunks)
201
+ print(f"content: {full_content[:500]}")
202
+ print(f"reasoning chunks: {len(reasoning_chunks)} (应为 0)")
203
+
204
+ assert content_chunks, "没有收到内容"
205
+ print("[PASS] 无思考模式流式调用成功\n")
206
+
207
+
208
+ async def test_reasoning_to_chat_event():
209
+ """测试将 reasoning_content 转换为 ChatEvent(模拟 deep_agent 逻辑)"""
210
+ print("=" * 60)
211
+ print("测试5: reasoning_content -> ChatEvent 转换")
212
+ print("=" * 60)
213
+
214
+ from sycommon.agent.chat_events import EventType, ChatEvent
215
+
216
+ llm = create_llm(streaming=True, thinking=True)
217
+ messages = [HumanMessage(content="9.11 和 9.9 哪个大?请仔细思考。")]
218
+
219
+ events = []
220
+
221
+ async for msg in llm.astream(messages):
222
+ msg_type = msg.__class__.__name__
223
+ content = msg.content or ""
224
+
225
+ if msg_type in ("AIMessage", "AIMessageChunk"):
226
+ # 模拟 deep_agent 的 reasoning_content 提取逻辑
227
+ reasoning_content = (
228
+ getattr(msg, "reasoning_content", None)
229
+ or getattr(msg, "additional_kwargs", {}).get(
230
+ "reasoning_content", None
231
+ )
232
+ )
233
+
234
+ if reasoning_content:
235
+ event = ChatEvent(
236
+ EventType.AI_CHUNK,
237
+ {"content": reasoning_content, "reasoning": True},
238
+ )
239
+ events.append(event)
240
+
241
+ if content:
242
+ event = ChatEvent(
243
+ EventType.AI_CHUNK,
244
+ {"content": content, "reasoning": False},
245
+ )
246
+ events.append(event)
247
+
248
+ reasoning_events = [e for e in events if e.data.get("reasoning")]
249
+ content_events = [e for e in events if not e.data.get("reasoning")]
250
+
251
+ print(f"总事件数: {len(events)}")
252
+ print(f"reasoning 事件: {len(reasoning_events)}")
253
+ print(f"content 事件: {len(content_events)}")
254
+
255
+ if reasoning_events:
256
+ sample = reasoning_events[0]
257
+ print(f"reasoning 事件示例: type={sample.type}, data={repr(sample.data)[:200]}")
258
+ if content_events:
259
+ sample = content_events[0]
260
+ print(f"content 事件示例: type={sample.type}, data={repr(sample.data)[:200]}")
261
+
262
+ # 验证事件可以序列化
263
+ if events:
264
+ serialized = events[0].to_dict()
265
+ print(f"序列化示例: {json.dumps(serialized, ensure_ascii=False)[:300]}")
266
+
267
+ assert events, "没有生成任何事件"
268
+ print("[PASS] ChatEvent 转换成功\n")
269
+
270
+
271
+ async def run_all():
272
+ """运行所有测试"""
273
+ print("=" * 60)
274
+ print(f"MiniMax2.5 推理内容测试")
275
+ print(f"模型: {MODEL} | 地址: {BASE_URL}")
276
+ print("=" * 60)
277
+
278
+ await test_non_stream_basic()
279
+ await test_non_stream_no_thinking()
280
+ await test_stream_with_reasoning()
281
+ await test_stream_no_thinking()
282
+ await test_reasoning_to_chat_event()
283
+
284
+ print("=" * 60)
285
+ print("全部测试完成!")
286
+ print("=" * 60)
287
+
288
+
289
+ if __name__ == "__main__":
290
+ asyncio.run(run_all())
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sycommon-python-lib
3
- Version: 0.2.5a2
3
+ Version: 0.2.5a3
4
4
  Summary: Add your description here
5
5
  Requires-Python: >=3.11
6
6
  Description-Content-Type: text/markdown
@@ -256,6 +256,7 @@ src/sycommon/synacos/param.py
256
256
  src/sycommon/tests/deep_agent_server.py
257
257
  src/sycommon/tests/test_deep_agent.py
258
258
  src/sycommon/tests/test_email.py
259
+ src/sycommon/tests/test_minimax_reasoning.py
259
260
  src/sycommon/tests/test_mq.py
260
261
  src/sycommon/tests/test_oa_login.py
261
262
  src/sycommon/tests/test_real_summarization.py