sycommon-python-lib 0.2.1a24__tar.gz → 0.2.1a26__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 (166) hide show
  1. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/PKG-INFO +1 -1
  2. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/pyproject.toml +1 -1
  3. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/agent/sandbox/http_sandbox_backend.py +62 -19
  4. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon_python_lib.egg-info/PKG-INFO +1 -1
  5. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/README.md +0 -0
  6. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/setup.cfg +0 -0
  7. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/command/__init__.py +0 -0
  8. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/command/cli.py +0 -0
  9. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/command/core/__init__.py +0 -0
  10. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/command/core/console.py +0 -0
  11. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/command/core/models.py +0 -0
  12. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/command/core/project.py +0 -0
  13. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/command/core/utils.py +0 -0
  14. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/command/templates/__init__.py +0 -0
  15. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/command/templates/agent/__init__.py +0 -0
  16. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/command/templates/base/__init__.py +0 -0
  17. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/command/templates/web/__init__.py +0 -0
  18. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/__init__.py +0 -0
  19. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/agent/__init__.py +0 -0
  20. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/agent/examples/01_basic_agent.py +0 -0
  21. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/agent/examples/02_tool_agent.py +0 -0
  22. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/agent/examples/03_structured_output.py +0 -0
  23. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/agent/examples/04_memory_agent.py +0 -0
  24. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/agent/examples/05_streaming.py +0 -0
  25. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/agent/examples/06_multi_agent.py +0 -0
  26. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/agent/examples/07_skills_agent.py +0 -0
  27. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/agent/examples/08_middleware.py +0 -0
  28. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/agent/examples/09_interrupt.py +0 -0
  29. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/agent/examples/10_custom_llm.py +0 -0
  30. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/agent/examples/11_complex_workflow.py +0 -0
  31. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/agent/examples/12_batch_processing.py +0 -0
  32. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/agent/examples/__init__.py +0 -0
  33. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/agent/examples/middleware/01_basic_monitoring.py +0 -0
  34. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/agent/examples/middleware/02_permission_control.py +0 -0
  35. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/agent/examples/middleware/03_tool_skill_filter.py +0 -0
  36. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/agent/examples/middleware/04_caching_retry.py +0 -0
  37. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/agent/examples/middleware/05_sanitization.py +0 -0
  38. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/agent/examples/middleware/06_tracking.py +0 -0
  39. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/agent/examples/middleware/07_advanced.py +0 -0
  40. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/agent/examples/middleware/08_progressive_skills.py +0 -0
  41. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/agent/examples/middleware/__init__.py +0 -0
  42. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/agent/examples/middleware/override_examples.py +0 -0
  43. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/agent/examples/virtual_employee_demo.py +0 -0
  44. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/agent/exports.py +0 -0
  45. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/agent/get_agent.py +0 -0
  46. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/agent/sandbox/__init__.py +0 -0
  47. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/agent/sandbox/file_ops.py +0 -0
  48. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/agent/sandbox/sandbox_pool.py +0 -0
  49. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/agent/sandbox/sandbox_recovery.py +0 -0
  50. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/agent/sandbox/session.py +0 -0
  51. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/agent/skills/__init__.py +0 -0
  52. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/agent/skills/examples/faq_handler/scripts/search.py +0 -0
  53. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/agent/skills/exports.py +0 -0
  54. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/agent/virtual_employee.py +0 -0
  55. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/config/Config.py +0 -0
  56. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/config/DatabaseConfig.py +0 -0
  57. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/config/ElasticsearchConfig.py +0 -0
  58. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/config/EmbeddingConfig.py +0 -0
  59. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/config/LLMConfig.py +0 -0
  60. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/config/LangfuseConfig.py +0 -0
  61. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/config/MQConfig.py +0 -0
  62. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/config/RedisConfig.py +0 -0
  63. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/config/RerankerConfig.py +0 -0
  64. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/config/SentryConfig.py +0 -0
  65. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/config/__init__.py +0 -0
  66. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/database/async_base_db_service.py +0 -0
  67. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/database/async_database_service.py +0 -0
  68. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/database/base_db_service.py +0 -0
  69. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/database/database_service.py +0 -0
  70. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/database/elasticsearch_service.py +0 -0
  71. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/database/redis_service.py +0 -0
  72. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/database/token_usage_db_service.py +0 -0
  73. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/health/__init__.py +0 -0
  74. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/health/health_check.py +0 -0
  75. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/health/metrics.py +0 -0
  76. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/health/ping.py +0 -0
  77. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/heartbeat_process/__init__.py +0 -0
  78. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/heartbeat_process/heartbeat_config.py +0 -0
  79. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/heartbeat_process/heartbeat_process_manager.py +0 -0
  80. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/heartbeat_process/heartbeat_process_worker.py +0 -0
  81. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/llm/__init__.py +0 -0
  82. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/llm/embedding.py +0 -0
  83. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/llm/get_llm.py +0 -0
  84. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/llm/llm_logger.py +0 -0
  85. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/llm/llm_tokens.py +0 -0
  86. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/llm/llm_with_token_tracking.py +0 -0
  87. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/llm/native_with_fallback_runnable.py +0 -0
  88. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/llm/output_fixing_runnable.py +0 -0
  89. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/llm/struct_token.py +0 -0
  90. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/llm/sy_langfuse.py +0 -0
  91. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/llm/token_usage_es_service.py +0 -0
  92. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/llm/token_usage_mysql_service.py +0 -0
  93. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/llm/usage_token.py +0 -0
  94. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/logging/__init__.py +0 -0
  95. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/logging/async_sql_logger.py +0 -0
  96. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/logging/kafka_log.py +0 -0
  97. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/logging/logger_levels.py +0 -0
  98. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/logging/logger_wrapper.py +0 -0
  99. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/logging/process_logger.py +0 -0
  100. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/logging/sql_logger.py +0 -0
  101. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/middleware/__init__.py +0 -0
  102. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/middleware/context.py +0 -0
  103. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/middleware/cors.py +0 -0
  104. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/middleware/docs.py +0 -0
  105. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/middleware/exception.py +0 -0
  106. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/middleware/middleware.py +0 -0
  107. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/middleware/monitor_memory.py +0 -0
  108. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/middleware/mq.py +0 -0
  109. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/middleware/sandbox.py +0 -0
  110. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/middleware/timeout.py +0 -0
  111. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/middleware/traceid.py +0 -0
  112. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/models/__init__.py +0 -0
  113. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/models/base_http.py +0 -0
  114. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/models/log.py +0 -0
  115. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/models/mqlistener_config.py +0 -0
  116. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/models/mqmsg_model.py +0 -0
  117. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/models/mqsend_config.py +0 -0
  118. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/models/sso_user.py +0 -0
  119. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/models/token_usage.py +0 -0
  120. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/models/token_usage_mysql.py +0 -0
  121. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/notice/__init__.py +0 -0
  122. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/notice/uvicorn_monitor.py +0 -0
  123. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/rabbitmq/process_pool_consumer.py +0 -0
  124. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/rabbitmq/rabbitmq_client.py +0 -0
  125. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/rabbitmq/rabbitmq_pool.py +0 -0
  126. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/rabbitmq/rabbitmq_service.py +0 -0
  127. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/rabbitmq/rabbitmq_service_client_manager.py +0 -0
  128. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/rabbitmq/rabbitmq_service_connection_monitor.py +0 -0
  129. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/rabbitmq/rabbitmq_service_consumer_manager.py +0 -0
  130. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/rabbitmq/rabbitmq_service_core.py +0 -0
  131. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/rabbitmq/rabbitmq_service_producer_manager.py +0 -0
  132. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/sentry/__init__.py +0 -0
  133. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/sentry/sy_sentry.py +0 -0
  134. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/services.py +0 -0
  135. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/sse/__init__.py +0 -0
  136. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/sse/event.py +0 -0
  137. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/sse/sse.py +0 -0
  138. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/synacos/__init__.py +0 -0
  139. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/synacos/example.py +0 -0
  140. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/synacos/example2.py +0 -0
  141. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/synacos/feign.py +0 -0
  142. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/synacos/feign_client.py +0 -0
  143. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/synacos/nacos_client_base.py +0 -0
  144. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/synacos/nacos_config_manager.py +0 -0
  145. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/synacos/nacos_heartbeat_manager.py +0 -0
  146. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/synacos/nacos_service.py +0 -0
  147. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/synacos/nacos_service_discovery.py +0 -0
  148. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/synacos/nacos_service_registration.py +0 -0
  149. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/synacos/param.py +0 -0
  150. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/tests/deep_agent_server.py +0 -0
  151. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/tests/test_deep_agent.py +0 -0
  152. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/tests/test_email.py +0 -0
  153. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/tests/test_mq.py +0 -0
  154. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/tools/__init__.py +0 -0
  155. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/tools/async_utils.py +0 -0
  156. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/tools/docs.py +0 -0
  157. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/tools/env.py +0 -0
  158. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/tools/merge_headers.py +0 -0
  159. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/tools/snowflake.py +0 -0
  160. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/tools/syemail.py +0 -0
  161. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon/tools/timing.py +0 -0
  162. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon_python_lib.egg-info/SOURCES.txt +0 -0
  163. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon_python_lib.egg-info/dependency_links.txt +0 -0
  164. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon_python_lib.egg-info/entry_points.txt +0 -0
  165. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon_python_lib.egg-info/requires.txt +0 -0
  166. {sycommon_python_lib-0.2.1a24 → sycommon_python_lib-0.2.1a26}/src/sycommon_python_lib.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sycommon-python-lib
3
- Version: 0.2.1a24
3
+ Version: 0.2.1a26
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.1a24"
3
+ version = "0.2.1a26"
4
4
  description = "Add your description here"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.11"
@@ -136,6 +136,7 @@ class HTTPSandboxBackend(FileOperationsMixin, SandboxBackendProtocol):
136
136
  Raises:
137
137
  RuntimeError: 无法发现服务实例或 NacosService 未初始化
138
138
  """
139
+ SYLogger.info(f"[Sandbox] from_nacos 开始: service_name={service_name}, user_id={user_id}")
139
140
  from sycommon.synacos.nacos_service import NacosService
140
141
 
141
142
  # 获取单例实例
@@ -147,6 +148,7 @@ class HTTPSandboxBackend(FileOperationsMixin, SandboxBackendProtocol):
147
148
  "NacosService 未初始化,请确保服务启动时已调用 NacosService.setup_nacos(config)"
148
149
  )
149
150
 
151
+ SYLogger.info(f"[Sandbox] 正在查询 Nacos 服务实例...")
150
152
  instances = nacos_manager.get_service_instances(
151
153
  service_name, group=group, target_version=version
152
154
  )
@@ -158,7 +160,7 @@ class HTTPSandboxBackend(FileOperationsMixin, SandboxBackendProtocol):
158
160
  instance = instances[0]
159
161
  base_url = f"http://{instance['ip']}:{instance['port']}"
160
162
 
161
- SYLogger.info(f"Nacos 发现沙箱服务: {service_name} -> {base_url}")
163
+ SYLogger.info(f"[Sandbox] Nacos 发现沙箱服务: {service_name} -> {base_url}")
162
164
 
163
165
  return cls(
164
166
  base_url=base_url,
@@ -249,18 +251,25 @@ class HTTPSandboxBackend(FileOperationsMixin, SandboxBackendProtocol):
249
251
  if trace_id:
250
252
  headers["x-traceid-header"] = str(trace_id)
251
253
 
254
+ url = f"{self._base_url}{endpoint}"
255
+ SYLogger.info(f"[Sandbox] POST 请求开始: {url}, timeout={http_timeout}s")
256
+
252
257
  for attempt in range(max_retries):
253
258
  try:
259
+ SYLogger.info(f"[Sandbox] POST 尝试 {attempt + 1}/{max_retries}: {url}")
254
260
  resp = requests.post(
255
- f"{self._base_url}{endpoint}",
261
+ url,
256
262
  json=data,
257
263
  headers=headers if headers else None,
258
264
  timeout=http_timeout
259
265
  )
266
+ SYLogger.info(f"[Sandbox] POST 响应状态码: {resp.status_code}")
260
267
  if resp.status_code >= 400:
261
268
  SYLogger.error(f"[Sandbox] HTTP 错误 {resp.status_code}: {resp.text}")
262
269
  resp.raise_for_status()
263
- return resp.json()
270
+ result = resp.json()
271
+ SYLogger.info(f"[Sandbox] POST 成功: {url}")
272
+ return result
264
273
 
265
274
  except (requests.exceptions.RequestException, requests.exceptions.HTTPError) as e:
266
275
  SYLogger.warning(f"[Sandbox] 请求失败 (尝试 {attempt + 1}/{max_retries}): {self._base_url} - {e}")
@@ -300,8 +309,9 @@ class HTTPSandboxBackend(FileOperationsMixin, SandboxBackendProtocol):
300
309
 
301
310
  def execute(self, command: str, *, timeout: int = None) -> ExecuteResponse:
302
311
  """执行 shell 命令"""
312
+ SYLogger.info(f"[Sandbox] execute 开始: command={command}")
303
313
  self._ensure_synced_sync()
304
- SYLogger.info(f"[Sandbox] 执行命令: {command}")
314
+ SYLogger.info(f"[Sandbox] _ensure_synced_sync 完成,开始执行命令: {command}")
305
315
  try:
306
316
  result = self._post_sync(f"{SANDBOX_API_PREFIX}/execute", {
307
317
  "command": command,
@@ -378,44 +388,61 @@ class HTTPSandboxBackend(FileOperationsMixin, SandboxBackendProtocol):
378
388
 
379
389
  # ============== 目录同步 ==============
380
390
 
381
- def _sync_sync(self):
391
+ def _sync_sync(self) -> dict:
382
392
  """同步目录(同步版本)"""
383
393
  if not self._sync_dirs:
384
394
  SYLogger.info("[Sandbox] 没有配置同步目录")
385
- return
395
+ return {}
386
396
 
387
- for local_path, remote_path in self._sync_dirs:
388
- SYLogger.info(f"[Sandbox] 同步目录: {local_path} -> {remote_path}")
397
+ SYLogger.info(f"[Sandbox] _sync_sync 开始, {len(self._sync_dirs)} 个目录")
398
+ results = {}
399
+ for idx, (local_path, remote_path) in enumerate(self._sync_dirs):
400
+ SYLogger.info(f"[Sandbox] 同步目录 [{idx+1}/{len(self._sync_dirs)}]: {local_path} -> {remote_path}")
389
401
  local_dir = Path(local_path)
390
402
 
391
403
  if not local_dir.exists():
392
404
  SYLogger.error(f"[Sandbox] 本地目录不存在: {local_path}")
405
+ results[local_path] = {"success": 0, "failed": 0, "errors": [{"error": "目录不存在"}]}
393
406
  continue
394
407
 
395
408
  if local_dir.is_dir():
396
- self._upload_directory_sync(str(local_dir), remote_path)
409
+ SYLogger.info(f"[Sandbox] 开始上传目录: {local_path}")
410
+ result = self._upload_directory_sync(str(local_dir), remote_path)
411
+ results[local_path] = result
412
+ SYLogger.info(f"[Sandbox] 目录上传完成: {local_path}, 成功={result['success']}, 失败={result['failed']}")
397
413
  else:
398
414
  # 单文件
415
+ SYLogger.info(f"[Sandbox] 上传单文件: {local_path}")
399
416
  with open(local_dir, "rb") as f:
400
417
  content = f.read()
401
418
  upload_results = self.upload_files([(remote_path, content)])
402
419
  if upload_results[0].error:
403
- SYLogger.error(f"[Sandbox] 上传文件失败: {upload_results[0].error}")
420
+ results[local_path] = {"success": 0, "failed": 1, "errors": [{"path": remote_path, "error": upload_results[0].error}]}
421
+ else:
422
+ results[local_path] = {"success": 1, "failed": 0, "errors": []}
404
423
 
405
424
  self._synced = True
406
- SYLogger.info("[Sandbox] 目录同步完成")
425
+ SYLogger.info("[Sandbox] _sync_sync 完成")
426
+ return results
407
427
 
408
428
  def sync(self) -> dict:
409
- """手动同步所有配置的目录到沙箱"""
410
- self._sync_sync()
411
- return {"status": "completed"}
429
+ """手动同步所有配置的目录到沙箱
430
+
431
+ Returns:
432
+ dict: 每个目录的同步结果 {"local_path": {"success": x, "failed": y, "errors": [...]}}
433
+ """
434
+ return self._sync_sync()
412
435
 
413
436
  async def async_sync(self) -> dict:
414
437
  """异步手动同步所有配置的目录到沙箱"""
415
438
  return await asyncio.to_thread(self.sync)
416
439
 
417
- def _upload_directory_sync(self, local_dir: str, remote_path: str = "/"):
418
- """上传整个目录到沙箱(同步版本)"""
440
+ def _upload_directory_sync(self, local_dir: str, remote_path: str = "/") -> dict:
441
+ """上传整个目录到沙箱(同步版本)
442
+
443
+ Returns:
444
+ dict: {"success": int, "failed": int, "errors": list}
445
+ """
419
446
  local_path = Path(local_dir)
420
447
  if not local_path.exists():
421
448
  raise FileNotFoundError(f"本地目录不存在: {local_dir}")
@@ -423,6 +450,8 @@ class HTTPSandboxBackend(FileOperationsMixin, SandboxBackendProtocol):
423
450
  if not local_path.is_dir():
424
451
  raise NotADirectoryError(f"路径不是目录: {local_dir}")
425
452
 
453
+ SYLogger.info(f"[Sandbox] _upload_directory_sync 开始: {local_dir} -> {remote_path}")
454
+
426
455
  exclude_patterns = [".git", "__pycache__", ".pyc", ".DS_Store", "node_modules"]
427
456
 
428
457
  def should_exclude(name: str) -> bool:
@@ -450,8 +479,15 @@ class HTTPSandboxBackend(FileOperationsMixin, SandboxBackendProtocol):
450
479
 
451
480
  SYLogger.info(f"[Sandbox] 准备上传 {len(files_to_upload)} 个文件到沙箱")
452
481
 
453
- for sandbox_path, local_file in files_to_upload:
482
+ success_count = 0
483
+ failed_count = 0
484
+ errors = []
485
+
486
+ for idx, (sandbox_path, local_file) in enumerate(files_to_upload):
454
487
  try:
488
+ if idx % 10 == 0:
489
+ SYLogger.info(f"[Sandbox] 上传进度: {idx}/{len(files_to_upload)}")
490
+
455
491
  with open(local_file, "rb") as f:
456
492
  content = f.read()
457
493
 
@@ -462,10 +498,17 @@ class HTTPSandboxBackend(FileOperationsMixin, SandboxBackendProtocol):
462
498
  })
463
499
 
464
500
  if result.get("error"):
465
- SYLogger.warning(f"[Sandbox] 上传失败: {sandbox_path} - {result['error']}")
501
+ failed_count += 1
502
+ errors.append({"path": sandbox_path, "error": result["error"]})
503
+ else:
504
+ success_count += 1
466
505
 
467
506
  except Exception as e:
468
- SYLogger.warning(f"[Sandbox] 上传异常: {sandbox_path} - {e}")
507
+ failed_count += 1
508
+ errors.append({"path": sandbox_path, "error": str(e)})
509
+
510
+ SYLogger.info(f"[Sandbox] _upload_directory_sync 完成: 成功={success_count}, 失败={failed_count}")
511
+ return {"success": success_count, "failed": failed_count, "errors": errors}
469
512
 
470
513
  def _sync_workspace_sync(self) -> dict:
471
514
  """同步用户工作空间的所有文件(同步版本)"""
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sycommon-python-lib
3
- Version: 0.2.1a24
3
+ Version: 0.2.1a26
4
4
  Summary: Add your description here
5
5
  Requires-Python: >=3.11
6
6
  Description-Content-Type: text/markdown