sycommon-python-lib 0.2.2a3__tar.gz → 0.2.2a4__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 (267) hide show
  1. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/PKG-INFO +5 -5
  2. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/pyproject.toml +5 -5
  3. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/command/cli.py +24 -3
  4. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/command/core/models.py +15 -0
  5. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/command/core/project.py +18 -7
  6. sycommon_python_lib-0.2.2a4/src/command/templates/__pycache__/__init__.cpython-311.pyc +0 -0
  7. sycommon_python_lib-0.2.2a4/src/command/templates/cli/README.md.tpl +54 -0
  8. sycommon_python_lib-0.2.2a4/src/command/templates/cli/__init__.py +1 -0
  9. sycommon_python_lib-0.2.2a4/src/command/templates/cli/app.py.tpl +45 -0
  10. sycommon_python_lib-0.2.2a4/src/command/templates/cli/commands/__init__.py.tpl +1 -0
  11. sycommon_python_lib-0.2.2a4/src/command/templates/cli/commands/hello.py.tpl +6 -0
  12. sycommon_python_lib-0.2.2a4/src/command/templates/cli/pyproject.toml.tpl +14 -0
  13. sycommon_python_lib-0.2.2a4/src/command/templates/web/tools/__init__.py.tpl +3 -0
  14. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon_python_lib.egg-info/PKG-INFO +5 -5
  15. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon_python_lib.egg-info/SOURCES.txt +8 -0
  16. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon_python_lib.egg-info/requires.txt +4 -4
  17. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/README.md +0 -0
  18. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/setup.cfg +0 -0
  19. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/command/__init__.py +0 -0
  20. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/command/core/__init__.py +0 -0
  21. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/command/core/console.py +0 -0
  22. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/command/core/utils.py +0 -0
  23. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/command/templates/__init__.py +0 -0
  24. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/command/templates/agent/README.md.tpl +0 -0
  25. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/command/templates/agent/__init__.py +0 -0
  26. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/command/templates/agent/agent/__init__.py.tpl +0 -0
  27. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/command/templates/agent/agent/main_agent.py.tpl +0 -0
  28. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/command/templates/agent/agent/nodes/__init__.py.tpl +0 -0
  29. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/command/templates/agent/agent/nodes/example_node.py.tpl +0 -0
  30. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/command/templates/agent/agent/states/__init__.py.tpl +0 -0
  31. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/command/templates/agent/agent/states/agent_state.py.tpl +0 -0
  32. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/command/templates/agent/api/__init__.py.tpl +0 -0
  33. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/command/templates/agent/api/query.py.tpl +0 -0
  34. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/command/templates/agent/api/sse/__init__.py.tpl +0 -0
  35. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/command/templates/agent/api/sse/agent.py.tpl +0 -0
  36. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/command/templates/agent/app.py.tpl +0 -0
  37. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/command/templates/agent/client/__init__.py.tpl +0 -0
  38. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/command/templates/agent/db/__init__.py.tpl +0 -0
  39. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/command/templates/agent/db/model/__init__.py.tpl +0 -0
  40. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/command/templates/agent/db/model/entity.py.tpl +0 -0
  41. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/command/templates/agent/db/service.py.tpl +0 -0
  42. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/command/templates/agent/model/__init__.py.tpl +0 -0
  43. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/command/templates/agent/model/parse.py.tpl +0 -0
  44. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/command/templates/agent/tools/__init__.py.tpl +0 -0
  45. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/command/templates/agent/tools/mq.py.tpl +0 -0
  46. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/command/templates/base/.env.tpl +0 -0
  47. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/command/templates/base/.gitignore.tpl +0 -0
  48. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/command/templates/base/Dockerfile.tpl +0 -0
  49. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/command/templates/base/README.md.tpl +0 -0
  50. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/command/templates/base/__init__.py +0 -0
  51. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/command/templates/base/app.py.tpl +0 -0
  52. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/command/templates/base/app.yaml.tpl +0 -0
  53. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/command/templates/base/client/FileServiceClient.py.tpl +0 -0
  54. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/command/templates/base/client/__init__.py.tpl +0 -0
  55. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/command/templates/base/model/__init__.py.tpl +0 -0
  56. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/command/templates/base/model/file_info.py.tpl +0 -0
  57. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/command/templates/base/requirements.txt.tpl +0 -0
  58. {sycommon_python_lib-0.2.2a3/src/command/templates/web → sycommon_python_lib-0.2.2a4/src/command/templates/cli}/tools/__init__.py.tpl +0 -0
  59. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/command/templates/web/README.md.tpl +0 -0
  60. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/command/templates/web/__init__.py +0 -0
  61. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/command/templates/web/api/__init__.py.tpl +0 -0
  62. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/command/templates/web/api/echo.py.tpl +0 -0
  63. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/command/templates/web/api/sse/__init__.py.tpl +0 -0
  64. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/command/templates/web/api/sse/echo.py.tpl +0 -0
  65. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/command/templates/web/app.py.tpl +0 -0
  66. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/command/templates/web/client/__init__.py.tpl +0 -0
  67. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/command/templates/web/model/__init__.py.tpl +0 -0
  68. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/command/templates/web/tools/mq.py.tpl +0 -0
  69. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/nexus/__init__.py +0 -0
  70. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycli/__init__.py +0 -0
  71. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycli/__main__.py +0 -0
  72. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycli/agents/__init__.py +0 -0
  73. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycli/agents/factory.py +0 -0
  74. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycli/agents/prompts.py +0 -0
  75. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycli/cdp/__init__.py +0 -0
  76. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycli/cdp/browser.py +0 -0
  77. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycli/cdp/capabilities/__init__.py +0 -0
  78. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycli/cdp/capabilities/console.py +0 -0
  79. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycli/cdp/capabilities/dom.py +0 -0
  80. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycli/cdp/capabilities/network.py +0 -0
  81. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycli/cdp/capabilities/page_errors.py +0 -0
  82. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycli/cdp/capabilities/performance.py +0 -0
  83. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycli/cdp/capabilities/screenshot.py +0 -0
  84. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycli/cdp/client.py +0 -0
  85. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycli/cdp/protocol.py +0 -0
  86. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycli/cdp/repl.py +0 -0
  87. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycli/cli.py +0 -0
  88. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycli/commands/__init__.py +0 -0
  89. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycli/commands/cdp_cmd.py +0 -0
  90. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycli/commands/chat_cmd.py +0 -0
  91. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycli/commands/create_cmd.py +0 -0
  92. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycli/commands/evaluate_cmd.py +0 -0
  93. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycli/commands/init_cmd.py +0 -0
  94. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycli/commands/memory_cmd.py +0 -0
  95. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycli/commands/resume_cmd.py +0 -0
  96. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycli/commands/rollback_cmd.py +0 -0
  97. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycli/commands/run_cmd.py +0 -0
  98. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycli/core/__init__.py +0 -0
  99. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycli/core/backend.py +0 -0
  100. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycli/core/config.py +0 -0
  101. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycli/core/display.py +0 -0
  102. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycli/core/git_integration.py +0 -0
  103. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycli/core/llm.py +0 -0
  104. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycli/core/state.py +0 -0
  105. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycli/evaluate/__init__.py +0 -0
  106. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycli/evaluate/api_evaluator.py +0 -0
  107. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycli/memory/__init__.py +0 -0
  108. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycli/memory/compressor.py +0 -0
  109. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycli/memory/full.py +0 -0
  110. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycli/memory/hot.py +0 -0
  111. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycli/memory/manager.py +0 -0
  112. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycli/memory/warm.py +0 -0
  113. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycli/mode/__init__.py +0 -0
  114. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycli/mode/create.py +0 -0
  115. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycli/mode/optimize.py +0 -0
  116. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycli/models/__init__.py +0 -0
  117. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycli/models/config_models.py +0 -0
  118. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycli/rl/__init__.py +0 -0
  119. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycli/rl/baseline_tests.py +0 -0
  120. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycli/rl/checkpoint.py +0 -0
  121. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycli/rl/convergence.py +0 -0
  122. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycli/rl/diagnosis.py +0 -0
  123. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycli/rl/engine.py +0 -0
  124. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycli/rl/environment.py +0 -0
  125. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycli/rl/experience.py +0 -0
  126. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycli/rl/harness_prompts.py +0 -0
  127. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycli/rl/history.py +0 -0
  128. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycli/rl/optimization_logger.py +0 -0
  129. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycli/rl/pre_validation.py +0 -0
  130. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycli/rl/reward.py +0 -0
  131. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycli/rl/strategy_bandit.py +0 -0
  132. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycli/rl/strategy_generator.py +0 -0
  133. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycli/rl/strategy_prompts.py +0 -0
  134. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycli/skills/__init__.py +0 -0
  135. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/__init__.py +0 -0
  136. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/agent/__init__.py +0 -0
  137. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/agent/agent_manager.py +0 -0
  138. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/agent/chat_events.py +0 -0
  139. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/agent/deep_agent.py +0 -0
  140. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/agent/multi_agent_team.py +0 -0
  141. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/agent/sandbox/__init__.py +0 -0
  142. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/agent/sandbox/file_ops.py +0 -0
  143. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/agent/sandbox/http_sandbox_backend.py +0 -0
  144. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/agent/sandbox/sandbox_pool.py +0 -0
  145. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/agent/sandbox/sandbox_recovery.py +0 -0
  146. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/agent/sandbox/session.py +0 -0
  147. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/auth/__init__.py +0 -0
  148. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/auth/ldap_service.py +0 -0
  149. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/auth/wecom_ldap_service.py +0 -0
  150. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/config/Config.py +0 -0
  151. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/config/DatabaseConfig.py +0 -0
  152. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/config/ElasticsearchConfig.py +0 -0
  153. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/config/EmbeddingConfig.py +0 -0
  154. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/config/LLMConfig.py +0 -0
  155. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/config/LangfuseConfig.py +0 -0
  156. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/config/MQConfig.py +0 -0
  157. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/config/RedisConfig.py +0 -0
  158. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/config/RerankerConfig.py +0 -0
  159. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/config/SentryConfig.py +0 -0
  160. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/config/XxlJobConfig.py +0 -0
  161. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/config/__init__.py +0 -0
  162. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/database/async_base_db_service.py +0 -0
  163. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/database/async_database_service.py +0 -0
  164. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/database/base_db_service.py +0 -0
  165. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/database/database_service.py +0 -0
  166. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/database/elasticsearch_service.py +0 -0
  167. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/database/redis_service.py +0 -0
  168. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/database/token_usage_db_service.py +0 -0
  169. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/health/__init__.py +0 -0
  170. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/health/health_check.py +0 -0
  171. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/health/metrics.py +0 -0
  172. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/health/ping.py +0 -0
  173. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/heartbeat_process/__init__.py +0 -0
  174. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/heartbeat_process/heartbeat_config.py +0 -0
  175. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/heartbeat_process/heartbeat_process_manager.py +0 -0
  176. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/heartbeat_process/heartbeat_process_worker.py +0 -0
  177. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/llm/__init__.py +0 -0
  178. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/llm/embedding.py +0 -0
  179. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/llm/get_llm.py +0 -0
  180. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/llm/llm_logger.py +0 -0
  181. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/llm/llm_tokens.py +0 -0
  182. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/llm/llm_with_token_tracking.py +0 -0
  183. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/llm/native_with_fallback_runnable.py +0 -0
  184. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/llm/output_fixing_runnable.py +0 -0
  185. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/llm/struct_token.py +0 -0
  186. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/llm/sy_langfuse.py +0 -0
  187. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/llm/token_usage_es_service.py +0 -0
  188. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/llm/token_usage_mysql_service.py +0 -0
  189. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/llm/usage_token.py +0 -0
  190. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/logging/__init__.py +0 -0
  191. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/logging/async_sql_logger.py +0 -0
  192. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/logging/kafka_log.py +0 -0
  193. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/logging/logger_levels.py +0 -0
  194. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/logging/logger_wrapper.py +0 -0
  195. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/logging/process_logger.py +0 -0
  196. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/logging/sql_logger.py +0 -0
  197. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/middleware/__init__.py +0 -0
  198. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/middleware/background_execution.py +0 -0
  199. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/middleware/context.py +0 -0
  200. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/middleware/cors.py +0 -0
  201. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/middleware/docs.py +0 -0
  202. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/middleware/exception.py +0 -0
  203. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/middleware/middleware.py +0 -0
  204. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/middleware/monitor_memory.py +0 -0
  205. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/middleware/mq.py +0 -0
  206. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/middleware/sandbox.py +0 -0
  207. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/middleware/timeout.py +0 -0
  208. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/middleware/token_tracking.py +0 -0
  209. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/middleware/traceid.py +0 -0
  210. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/models/__init__.py +0 -0
  211. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/models/base_http.py +0 -0
  212. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/models/log.py +0 -0
  213. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/models/mqlistener_config.py +0 -0
  214. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/models/mqmsg_model.py +0 -0
  215. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/models/mqsend_config.py +0 -0
  216. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/models/sandbox.py +0 -0
  217. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/models/sso_user.py +0 -0
  218. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/models/token_usage.py +0 -0
  219. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/models/token_usage_mysql.py +0 -0
  220. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/models/xxljob_handler_config.py +0 -0
  221. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/notice/__init__.py +0 -0
  222. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/notice/uvicorn_monitor.py +0 -0
  223. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/rabbitmq/process_pool_consumer.py +0 -0
  224. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/rabbitmq/rabbitmq_client.py +0 -0
  225. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/rabbitmq/rabbitmq_pool.py +0 -0
  226. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/rabbitmq/rabbitmq_service.py +0 -0
  227. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/rabbitmq/rabbitmq_service_client_manager.py +0 -0
  228. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/rabbitmq/rabbitmq_service_connection_monitor.py +0 -0
  229. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/rabbitmq/rabbitmq_service_consumer_manager.py +0 -0
  230. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/rabbitmq/rabbitmq_service_core.py +0 -0
  231. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/rabbitmq/rabbitmq_service_producer_manager.py +0 -0
  232. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/sentry/__init__.py +0 -0
  233. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/sentry/sy_sentry.py +0 -0
  234. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/services.py +0 -0
  235. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/sse/__init__.py +0 -0
  236. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/sse/event.py +0 -0
  237. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/sse/sse.py +0 -0
  238. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/synacos/__init__.py +0 -0
  239. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/synacos/example.py +0 -0
  240. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/synacos/example2.py +0 -0
  241. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/synacos/feign.py +0 -0
  242. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/synacos/feign_client.py +0 -0
  243. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/synacos/nacos_client_base.py +0 -0
  244. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/synacos/nacos_config_manager.py +0 -0
  245. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/synacos/nacos_heartbeat_manager.py +0 -0
  246. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/synacos/nacos_service.py +0 -0
  247. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/synacos/nacos_service_discovery.py +0 -0
  248. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/synacos/nacos_service_registration.py +0 -0
  249. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/synacos/param.py +0 -0
  250. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/tests/deep_agent_server.py +0 -0
  251. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/tests/test_deep_agent.py +0 -0
  252. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/tests/test_email.py +0 -0
  253. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/tests/test_mq.py +0 -0
  254. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/tools/__init__.py +0 -0
  255. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/tools/async_utils.py +0 -0
  256. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/tools/docs.py +0 -0
  257. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/tools/env.py +0 -0
  258. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/tools/merge_headers.py +0 -0
  259. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/tools/snowflake.py +0 -0
  260. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/tools/syemail.py +0 -0
  261. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/tools/timing.py +0 -0
  262. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/xxljob/__init__.py +0 -0
  263. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon/xxljob/xxljob_service.py +0 -0
  264. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon_python_lib.egg-info/dependency_links.txt +0 -0
  265. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon_python_lib.egg-info/entry_points.txt +0 -0
  266. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/src/sycommon_python_lib.egg-info/top_level.txt +0 -0
  267. {sycommon_python_lib-0.2.2a3 → sycommon_python_lib-0.2.2a4}/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.2a3
3
+ Version: 0.2.2a4
4
4
  Summary: Add your description here
5
5
  Requires-Python: >=3.11
6
6
  Description-Content-Type: text/markdown
@@ -11,18 +11,18 @@ Requires-Dist: anyio>=4.12.1
11
11
  Requires-Dist: decorator>=5.2.1
12
12
  Requires-Dist: deepagents>=0.5.3
13
13
  Requires-Dist: elasticsearch>=9.3.0
14
- Requires-Dist: fastapi>=0.136.0
14
+ Requires-Dist: fastapi>=0.136.1
15
15
  Requires-Dist: jinja2>=3.1.6
16
16
  Requires-Dist: kafka-python>=2.3.1
17
17
  Requires-Dist: langchain>=1.2.15
18
- Requires-Dist: langchain-core>=1.3.0
18
+ Requires-Dist: langchain-core>=1.3.1
19
19
  Requires-Dist: langchain-openai>=1.2.0
20
20
  Requires-Dist: langfuse>=4.5.0
21
21
  Requires-Dist: langgraph>=1.1.9
22
22
  Requires-Dist: langgraph-checkpoint-redis>=0.4.1
23
23
  Requires-Dist: ldap3>=2.9.1
24
24
  Requires-Dist: loguru>=0.7.3
25
- Requires-Dist: mysql-connector-python>=9.6.0
25
+ Requires-Dist: mysql-connector-python>=9.7.0
26
26
  Requires-Dist: nacos-sdk-python<3.0,>=2.0.11
27
27
  Requires-Dist: psutil>=7.2.2
28
28
  Requires-Dist: pyxxl>=0.4.6
@@ -35,7 +35,7 @@ Requires-Dist: sentry-sdk[fastapi]>=2.58.0
35
35
  Requires-Dist: sqlalchemy[asyncio]>=2.0.48
36
36
  Requires-Dist: starlette[full]>=1.0.0
37
37
  Requires-Dist: tiktoken>=0.12.0
38
- Requires-Dist: uvicorn>=0.45.0
38
+ Requires-Dist: uvicorn>=0.46.0
39
39
  Requires-Dist: wecom-aibot-python-sdk>=1.0.2
40
40
 
41
41
  # sycommon-python-lib
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "sycommon-python-lib"
3
- version = "0.2.2a3"
3
+ version = "0.2.2a4"
4
4
  description = "Add your description here"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.11"
@@ -12,18 +12,18 @@ dependencies = [
12
12
  "decorator>=5.2.1",
13
13
  "deepagents>=0.5.3",
14
14
  "elasticsearch>=9.3.0",
15
- "fastapi>=0.136.0",
15
+ "fastapi>=0.136.1",
16
16
  "jinja2>=3.1.6",
17
17
  "kafka-python>=2.3.1",
18
18
  "langchain>=1.2.15",
19
- "langchain-core>=1.3.0",
19
+ "langchain-core>=1.3.1",
20
20
  "langchain-openai>=1.2.0",
21
21
  "langfuse>=4.5.0",
22
22
  "langgraph>=1.1.9",
23
23
  "langgraph-checkpoint-redis>=0.4.1",
24
24
  "ldap3>=2.9.1",
25
25
  "loguru>=0.7.3",
26
- "mysql-connector-python>=9.6.0",
26
+ "mysql-connector-python>=9.7.0",
27
27
  "nacos-sdk-python>=2.0.11,<3.0",
28
28
  "psutil>=7.2.2",
29
29
  "pyxxl>=0.4.6",
@@ -36,7 +36,7 @@ dependencies = [
36
36
  "sqlalchemy[asyncio]>=2.0.48",
37
37
  "starlette[full]>=1.0.0",
38
38
  "tiktoken>=0.12.0",
39
- "uvicorn>=0.45.0",
39
+ "uvicorn>=0.46.0",
40
40
  "wecom-aibot-python-sdk>=1.0.2",
41
41
  ]
42
42
 
@@ -49,6 +49,12 @@ def create_init_parser(subparsers) -> None:
49
49
  web - 标准 FastAPI Web 服务,适合 RESTful API 开发
50
50
  agent - AI Agent 服务,基于 langgraph 实现状态图
51
51
 
52
+ CLI 项目结构:
53
+ commands/ - 子命令目录
54
+ model/ - 数据模型
55
+ client/ - 外部服务客户端
56
+ app.py - CLI 入口 (argparse)
57
+
52
58
  Agent 项目结构:
53
59
  agent/ - Agent 核心 (main_agent, nodes, states, enums)
54
60
  api/sse/ - SSE 流式接口
@@ -79,7 +85,7 @@ Web 项目结构:
79
85
  # 位置参数
80
86
  init_parser.add_argument(
81
87
  "project_type",
82
- choices=["web", "agent"],
88
+ choices=["web", "agent", "cli"],
83
89
  help="项目类型:web / agent"
84
90
  )
85
91
  init_parser.add_argument(
@@ -221,6 +227,8 @@ def _detect_project_type(project_path) -> str | None:
221
227
  if (project_path / "agent" / "main_agent.py").exists() or \
222
228
  (project_path / "agent" / "enums").is_dir():
223
229
  return "agent"
230
+ if (project_path / "commands").is_dir() and (project_path / "app.py").exists():
231
+ return "cli"
224
232
  if (project_path / "api").is_dir():
225
233
  return "web"
226
234
  return None
@@ -247,13 +255,19 @@ def handle_doctor_command(args) -> bool:
247
255
  warnings.append("无法识别项目类型 (非 web / agent 标准结构)")
248
256
 
249
257
  # 1. 检查必要文件
250
- required_files = ["app.py", "requirements.txt"]
258
+ if project_type == "cli":
259
+ required_files = ["app.py", "pyproject.toml"]
260
+ else:
261
+ required_files = ["app.py", "requirements.txt"]
251
262
  for file in required_files:
252
263
  if not (project_path / file).exists():
253
264
  issues.append(f"缺少必要文件: {file}")
254
265
 
255
266
  # 2. 检查配置文件
256
- config_files = ["app.yaml", ".env"]
267
+ if project_type == "cli":
268
+ config_files = [".env"]
269
+ else:
270
+ config_files = ["app.yaml", ".env"]
257
271
  for file in config_files:
258
272
  if not (project_path / file).exists():
259
273
  warnings.append(f"缺少配置文件: {file}")
@@ -276,6 +290,8 @@ def handle_doctor_command(args) -> bool:
276
290
  issues.append(f"缺少 Agent 核心文件: {file}")
277
291
  elif project_type == "web":
278
292
  required_dirs = ["api", "model", "tools", "client"]
293
+ elif project_type == "cli":
294
+ required_dirs = ["commands", "model", "tools"]
279
295
  else:
280
296
  required_dirs = ["api", "model", "tools"]
281
297
 
@@ -351,6 +367,11 @@ def handle_list_command(args) -> bool:
351
367
  "api/sse/", "api/query.py", "tools/", "model/", "db/"],
352
368
  "features": "nacos, kafka_log, llm, sentry (默认启用)",
353
369
  },
370
+ "cli": {
371
+ "desc": "Python CLI 命令行工具 (argparse)",
372
+ "dirs": ["commands/", "model/", "client/"],
373
+ "features": "无默认依赖 (精简模板)",
374
+ },
354
375
  }
355
376
 
356
377
  for name, info in templates.items():
@@ -13,6 +13,19 @@ AGENT_DEFAULTS = {
13
13
  "llm": True,
14
14
  }
15
15
 
16
+ # CLI 项目默认关闭所有服务依赖
17
+ CLI_DEFAULTS = {
18
+ "database": False,
19
+ "rabbitmq": False,
20
+ "nacos": False,
21
+ "kafka_log": False,
22
+ "sse": False,
23
+ "llm": False,
24
+ "redis": False,
25
+ "elasticsearch": False,
26
+ "sentry": False,
27
+ }
28
+
16
29
 
17
30
  @dataclass
18
31
  class FeatureOptions:
@@ -32,6 +45,8 @@ class FeatureOptions:
32
45
  """根据项目类型返回推荐默认配置"""
33
46
  if project_type == "agent":
34
47
  return cls(**AGENT_DEFAULTS)
48
+ if project_type == "cli":
49
+ return cls(**CLI_DEFAULTS)
35
50
  return cls()
36
51
 
37
52
  def to_template_vars(self) -> dict:
@@ -153,13 +153,19 @@ def init_project(
153
153
  'db/', 'db/service.py', 'db/model/', 'db/model/entity.py',
154
154
  ],
155
155
  }
156
+ # CLI 项目不需要的服务端文件
157
+ cli_skip_files = {'app.yaml', 'app.yaml.tpl', 'requirements.txt', 'requirements.txt.tpl', 'Dockerfile', 'Dockerfile.tpl'}
156
158
  disabled_features = {
157
159
  key for key, flag_val in features.to_template_vars().items()
158
160
  if flag_val == 'false' and key in feature_map
159
161
  }
160
162
 
161
163
  def _should_skip(rel_path: str) -> bool:
162
- """检查文件是否因功能关闭而应跳过"""
164
+ """检查文件是否因功能关闭或项目类型而应跳过"""
165
+ # CLI 项目跳过不需要的服务端文件
166
+ if project_type == "cli":
167
+ if rel_path in cli_skip_files or rel_path.replace('.tpl', '') in cli_skip_files:
168
+ return True
163
169
  for feat_key in disabled_features:
164
170
  for pattern in feature_map[feat_key]:
165
171
  if pattern in rel_path:
@@ -191,7 +197,7 @@ def init_project(
191
197
  copied_files = _render_files(file_mappings, context, project_path, verbose)
192
198
 
193
199
  if copied_files > 0:
194
- _print_success_message(project_path, project_name, copied_files)
200
+ _print_success_message(project_path, project_name, copied_files, project_type)
195
201
  return True
196
202
  else:
197
203
  print_warning("未创建任何文件,可能是缺少模板文件或模板路径配置错误")
@@ -284,7 +290,8 @@ def _render_files(
284
290
  def _print_success_message(
285
291
  project_path: Path,
286
292
  project_name: str,
287
- copied_files: int
293
+ copied_files: int,
294
+ project_type: str = "web",
288
295
  ) -> None:
289
296
  """打印成功信息"""
290
297
  print_success(f"模板工程 {project_name} 创建完成!")
@@ -293,7 +300,11 @@ def _print_success_message(
293
300
  print()
294
301
  print_info("下一步操作:")
295
302
  print(f" cd {project_name}")
296
- print(f" # 建议先创建虚拟环境")
297
- print(f" python -m venv .venv && source .venv/bin/activate")
298
- print(f" pip install -r requirements.txt")
299
- print(f" python app.py")
303
+ if project_type == "cli":
304
+ print(f" uv sync")
305
+ print(f" uv run python app.py")
306
+ else:
307
+ print(f" # 建议先创建虚拟环境")
308
+ print(f" python -m venv .venv && source .venv/bin/activate")
309
+ print(f" pip install -r requirements.txt")
310
+ print(f" python app.py")
@@ -0,0 +1,54 @@
1
+ # {{ project_name }}
2
+
3
+ {{ project_name }} - Python CLI 命令行工具
4
+
5
+ ## 项目结构
6
+
7
+ ```
8
+ {{ project_name }}/
9
+ ├── commands/ # 子命令目录
10
+ │ ├── __init__.py
11
+ │ └── hello.py # 示例子命令
12
+ ├── tools/ # 工具函数
13
+ ├── model/ # 数据模型
14
+ ├── client/ # 外部服务客户端
15
+ ├── app.py # CLI 入口
16
+ ├── pyproject.toml # uv 项目配置
17
+ └── README.md
18
+ ```
19
+
20
+ ## 快速开始
21
+
22
+ ### 安装依赖
23
+ ```bash
24
+ uv sync
25
+ ```
26
+
27
+ ### 使用
28
+ ```bash
29
+ # 查看帮助
30
+ uv run python app.py -h
31
+
32
+ # hello 命令
33
+ uv run python app.py hello --name "World"
34
+
35
+ # 查看版本
36
+ uv run python app.py version
37
+ ```
38
+
39
+ ### 添加新子命令
40
+
41
+ 1. 在 `commands/` 目录下创建新模块,例如 `commands/xxx.py`
42
+ 2. 实现 `handle_xxx(args)` 函数
43
+ 3. 在 `app.py` 中注册子命令:
44
+
45
+ ```python
46
+ from commands.xxx import handle_xxx
47
+
48
+ # 在 create_parser() 中添加:
49
+ xxx_parser = subparsers.add_parser("xxx", help="xxx 说明")
50
+
51
+ # 在 main() 中添加:
52
+ elif args.command == "xxx":
53
+ handle_xxx(args)
54
+ ```
@@ -0,0 +1 @@
1
+ """CLI 项目模板"""
@@ -0,0 +1,45 @@
1
+ """
2
+ {{ project_name }} - CLI 工具入口
3
+ 创建时间: {{ create_time }}
4
+ 作者: {{ author }}
5
+ """
6
+ import argparse
7
+ import sys
8
+
9
+ from commands.hello import handle_hello
10
+
11
+
12
+ def create_parser() -> argparse.ArgumentParser:
13
+ """创建命令行解析器"""
14
+ parser = argparse.ArgumentParser(
15
+ prog="{{ project_name }}",
16
+ description="{{ project_name }} - CLI 命令行工具",
17
+ )
18
+
19
+ subparsers = parser.add_subparsers(dest="command", help="子命令")
20
+
21
+ # hello 子命令
22
+ hello_parser = subparsers.add_parser("hello", help="打招呼")
23
+ hello_parser.add_argument("--name", default="World", help="名字")
24
+
25
+ # version 子命令
26
+ subparsers.add_parser("version", help="显示版本")
27
+
28
+ return parser
29
+
30
+
31
+ def main() -> None:
32
+ """CLI 主入口"""
33
+ parser = create_parser()
34
+ args = parser.parse_args()
35
+
36
+ if args.command == "hello":
37
+ handle_hello(args)
38
+ elif args.command == "version":
39
+ print("{{ project_name }} 1.0.0")
40
+ else:
41
+ parser.print_help()
42
+
43
+
44
+ if __name__ == "__main__":
45
+ main()
@@ -0,0 +1,6 @@
1
+ """hello 子命令"""
2
+
3
+
4
+ def handle_hello(args) -> None:
5
+ """处理 hello 命令"""
6
+ print(f"Hello, {args.name}!")
@@ -0,0 +1,14 @@
1
+ [project]
2
+ name = "{{ project_name }}"
3
+ version = "0.1.0"
4
+ description = "{{ project_name }} - CLI 命令行工具"
5
+ readme = "README.md"
6
+ requires-python = ">=3.11"
7
+ dependencies = []
8
+
9
+ [project.scripts]
10
+ {{ short_project_name }} = "app:main"
11
+
12
+ [build-system]
13
+ requires = ["hatchling"]
14
+ build-backend = "hatchling.build"
@@ -0,0 +1,3 @@
1
+ """
2
+ 工具函数模块
3
+ """
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sycommon-python-lib
3
- Version: 0.2.2a3
3
+ Version: 0.2.2a4
4
4
  Summary: Add your description here
5
5
  Requires-Python: >=3.11
6
6
  Description-Content-Type: text/markdown
@@ -11,18 +11,18 @@ Requires-Dist: anyio>=4.12.1
11
11
  Requires-Dist: decorator>=5.2.1
12
12
  Requires-Dist: deepagents>=0.5.3
13
13
  Requires-Dist: elasticsearch>=9.3.0
14
- Requires-Dist: fastapi>=0.136.0
14
+ Requires-Dist: fastapi>=0.136.1
15
15
  Requires-Dist: jinja2>=3.1.6
16
16
  Requires-Dist: kafka-python>=2.3.1
17
17
  Requires-Dist: langchain>=1.2.15
18
- Requires-Dist: langchain-core>=1.3.0
18
+ Requires-Dist: langchain-core>=1.3.1
19
19
  Requires-Dist: langchain-openai>=1.2.0
20
20
  Requires-Dist: langfuse>=4.5.0
21
21
  Requires-Dist: langgraph>=1.1.9
22
22
  Requires-Dist: langgraph-checkpoint-redis>=0.4.1
23
23
  Requires-Dist: ldap3>=2.9.1
24
24
  Requires-Dist: loguru>=0.7.3
25
- Requires-Dist: mysql-connector-python>=9.6.0
25
+ Requires-Dist: mysql-connector-python>=9.7.0
26
26
  Requires-Dist: nacos-sdk-python<3.0,>=2.0.11
27
27
  Requires-Dist: psutil>=7.2.2
28
28
  Requires-Dist: pyxxl>=0.4.6
@@ -35,7 +35,7 @@ Requires-Dist: sentry-sdk[fastapi]>=2.58.0
35
35
  Requires-Dist: sqlalchemy[asyncio]>=2.0.48
36
36
  Requires-Dist: starlette[full]>=1.0.0
37
37
  Requires-Dist: tiktoken>=0.12.0
38
- Requires-Dist: uvicorn>=0.45.0
38
+ Requires-Dist: uvicorn>=0.46.0
39
39
  Requires-Dist: wecom-aibot-python-sdk>=1.0.2
40
40
 
41
41
  # sycommon-python-lib
@@ -8,6 +8,7 @@ src/command/core/models.py
8
8
  src/command/core/project.py
9
9
  src/command/core/utils.py
10
10
  src/command/templates/__init__.py
11
+ src/command/templates/__pycache__/__init__.cpython-311.pyc
11
12
  src/command/templates/agent/README.md.tpl
12
13
  src/command/templates/agent/__init__.py
13
14
  src/command/templates/agent/app.py.tpl
@@ -42,6 +43,13 @@ src/command/templates/base/client/FileServiceClient.py.tpl
42
43
  src/command/templates/base/client/__init__.py.tpl
43
44
  src/command/templates/base/model/__init__.py.tpl
44
45
  src/command/templates/base/model/file_info.py.tpl
46
+ src/command/templates/cli/README.md.tpl
47
+ src/command/templates/cli/__init__.py
48
+ src/command/templates/cli/app.py.tpl
49
+ src/command/templates/cli/pyproject.toml.tpl
50
+ src/command/templates/cli/commands/__init__.py.tpl
51
+ src/command/templates/cli/commands/hello.py.tpl
52
+ src/command/templates/cli/tools/__init__.py.tpl
45
53
  src/command/templates/web/README.md.tpl
46
54
  src/command/templates/web/__init__.py
47
55
  src/command/templates/web/app.py.tpl
@@ -5,18 +5,18 @@ anyio>=4.12.1
5
5
  decorator>=5.2.1
6
6
  deepagents>=0.5.3
7
7
  elasticsearch>=9.3.0
8
- fastapi>=0.136.0
8
+ fastapi>=0.136.1
9
9
  jinja2>=3.1.6
10
10
  kafka-python>=2.3.1
11
11
  langchain>=1.2.15
12
- langchain-core>=1.3.0
12
+ langchain-core>=1.3.1
13
13
  langchain-openai>=1.2.0
14
14
  langfuse>=4.5.0
15
15
  langgraph>=1.1.9
16
16
  langgraph-checkpoint-redis>=0.4.1
17
17
  ldap3>=2.9.1
18
18
  loguru>=0.7.3
19
- mysql-connector-python>=9.6.0
19
+ mysql-connector-python>=9.7.0
20
20
  nacos-sdk-python<3.0,>=2.0.11
21
21
  psutil>=7.2.2
22
22
  pyxxl>=0.4.6
@@ -29,5 +29,5 @@ sentry-sdk[fastapi]>=2.58.0
29
29
  sqlalchemy[asyncio]>=2.0.48
30
30
  starlette[full]>=1.0.0
31
31
  tiktoken>=0.12.0
32
- uvicorn>=0.45.0
32
+ uvicorn>=0.46.0
33
33
  wecom-aibot-python-sdk>=1.0.2