sycommon-python-lib 0.2.1a5__tar.gz → 0.2.1a7__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 (165) hide show
  1. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/PKG-INFO +1 -1
  2. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/pyproject.toml +1 -1
  3. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/middleware/sandbox.py +20 -11
  4. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon_python_lib.egg-info/PKG-INFO +1 -1
  5. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/README.md +0 -0
  6. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/setup.cfg +0 -0
  7. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/command/__init__.py +0 -0
  8. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/command/cli.py +0 -0
  9. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/command/core/__init__.py +0 -0
  10. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/command/core/console.py +0 -0
  11. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/command/core/models.py +0 -0
  12. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/command/core/project.py +0 -0
  13. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/command/core/utils.py +0 -0
  14. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/command/templates/__init__.py +0 -0
  15. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/command/templates/agent/__init__.py +0 -0
  16. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/command/templates/base/__init__.py +0 -0
  17. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/command/templates/web/__init__.py +0 -0
  18. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/__init__.py +0 -0
  19. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/agent/__init__.py +0 -0
  20. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/agent/examples/01_basic_agent.py +0 -0
  21. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/agent/examples/02_tool_agent.py +0 -0
  22. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/agent/examples/03_structured_output.py +0 -0
  23. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/agent/examples/04_memory_agent.py +0 -0
  24. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/agent/examples/05_streaming.py +0 -0
  25. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/agent/examples/06_multi_agent.py +0 -0
  26. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/agent/examples/07_skills_agent.py +0 -0
  27. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/agent/examples/08_middleware.py +0 -0
  28. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/agent/examples/09_interrupt.py +0 -0
  29. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/agent/examples/10_custom_llm.py +0 -0
  30. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/agent/examples/11_complex_workflow.py +0 -0
  31. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/agent/examples/12_batch_processing.py +0 -0
  32. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/agent/examples/__init__.py +0 -0
  33. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/agent/examples/middleware/01_basic_monitoring.py +0 -0
  34. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/agent/examples/middleware/02_permission_control.py +0 -0
  35. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/agent/examples/middleware/03_tool_skill_filter.py +0 -0
  36. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/agent/examples/middleware/04_caching_retry.py +0 -0
  37. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/agent/examples/middleware/05_sanitization.py +0 -0
  38. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/agent/examples/middleware/06_tracking.py +0 -0
  39. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/agent/examples/middleware/07_advanced.py +0 -0
  40. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/agent/examples/middleware/08_progressive_skills.py +0 -0
  41. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/agent/examples/middleware/__init__.py +0 -0
  42. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/agent/examples/middleware/override_examples.py +0 -0
  43. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/agent/examples/virtual_employee_demo.py +0 -0
  44. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/agent/exports.py +0 -0
  45. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/agent/get_agent.py +0 -0
  46. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/agent/sandbox/__init__.py +0 -0
  47. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/agent/sandbox/file_ops.py +0 -0
  48. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/agent/sandbox/http_sandbox_backend.py +0 -0
  49. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/agent/sandbox/sandbox_pool.py +0 -0
  50. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/agent/sandbox/session.py +0 -0
  51. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/agent/skills/__init__.py +0 -0
  52. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/agent/skills/examples/faq_handler/scripts/search.py +0 -0
  53. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/agent/skills/exports.py +0 -0
  54. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/agent/virtual_employee.py +0 -0
  55. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/config/Config.py +0 -0
  56. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/config/DatabaseConfig.py +0 -0
  57. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/config/ElasticsearchConfig.py +0 -0
  58. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/config/EmbeddingConfig.py +0 -0
  59. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/config/LLMConfig.py +0 -0
  60. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/config/LangfuseConfig.py +0 -0
  61. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/config/MQConfig.py +0 -0
  62. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/config/RedisConfig.py +0 -0
  63. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/config/RerankerConfig.py +0 -0
  64. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/config/SentryConfig.py +0 -0
  65. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/config/__init__.py +0 -0
  66. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/database/async_base_db_service.py +0 -0
  67. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/database/async_database_service.py +0 -0
  68. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/database/base_db_service.py +0 -0
  69. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/database/database_service.py +0 -0
  70. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/database/elasticsearch_service.py +0 -0
  71. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/database/redis_service.py +0 -0
  72. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/database/token_usage_db_service.py +0 -0
  73. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/health/__init__.py +0 -0
  74. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/health/health_check.py +0 -0
  75. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/health/metrics.py +0 -0
  76. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/health/ping.py +0 -0
  77. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/heartbeat_process/__init__.py +0 -0
  78. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/heartbeat_process/heartbeat_config.py +0 -0
  79. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/heartbeat_process/heartbeat_process_manager.py +0 -0
  80. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/heartbeat_process/heartbeat_process_worker.py +0 -0
  81. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/llm/__init__.py +0 -0
  82. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/llm/embedding.py +0 -0
  83. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/llm/get_llm.py +0 -0
  84. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/llm/llm_logger.py +0 -0
  85. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/llm/llm_tokens.py +0 -0
  86. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/llm/llm_with_token_tracking.py +0 -0
  87. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/llm/native_with_fallback_runnable.py +0 -0
  88. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/llm/output_fixing_runnable.py +0 -0
  89. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/llm/struct_token.py +0 -0
  90. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/llm/sy_langfuse.py +0 -0
  91. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/llm/token_usage_es_service.py +0 -0
  92. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/llm/token_usage_mysql_service.py +0 -0
  93. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/llm/usage_token.py +0 -0
  94. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/logging/__init__.py +0 -0
  95. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/logging/async_sql_logger.py +0 -0
  96. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/logging/kafka_log.py +0 -0
  97. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/logging/logger_levels.py +0 -0
  98. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/logging/logger_wrapper.py +0 -0
  99. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/logging/process_logger.py +0 -0
  100. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/logging/sql_logger.py +0 -0
  101. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/middleware/__init__.py +0 -0
  102. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/middleware/context.py +0 -0
  103. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/middleware/cors.py +0 -0
  104. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/middleware/docs.py +0 -0
  105. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/middleware/exception.py +0 -0
  106. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/middleware/middleware.py +0 -0
  107. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/middleware/monitor_memory.py +0 -0
  108. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/middleware/mq.py +0 -0
  109. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/middleware/timeout.py +0 -0
  110. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/middleware/traceid.py +0 -0
  111. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/models/__init__.py +0 -0
  112. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/models/base_http.py +0 -0
  113. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/models/log.py +0 -0
  114. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/models/mqlistener_config.py +0 -0
  115. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/models/mqmsg_model.py +0 -0
  116. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/models/mqsend_config.py +0 -0
  117. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/models/sso_user.py +0 -0
  118. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/models/token_usage.py +0 -0
  119. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/models/token_usage_mysql.py +0 -0
  120. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/notice/__init__.py +0 -0
  121. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/notice/uvicorn_monitor.py +0 -0
  122. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/rabbitmq/process_pool_consumer.py +0 -0
  123. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/rabbitmq/rabbitmq_client.py +0 -0
  124. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/rabbitmq/rabbitmq_pool.py +0 -0
  125. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/rabbitmq/rabbitmq_service.py +0 -0
  126. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/rabbitmq/rabbitmq_service_client_manager.py +0 -0
  127. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/rabbitmq/rabbitmq_service_connection_monitor.py +0 -0
  128. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/rabbitmq/rabbitmq_service_consumer_manager.py +0 -0
  129. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/rabbitmq/rabbitmq_service_core.py +0 -0
  130. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/rabbitmq/rabbitmq_service_producer_manager.py +0 -0
  131. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/sentry/__init__.py +0 -0
  132. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/sentry/sy_sentry.py +0 -0
  133. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/services.py +0 -0
  134. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/sse/__init__.py +0 -0
  135. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/sse/event.py +0 -0
  136. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/sse/sse.py +0 -0
  137. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/synacos/__init__.py +0 -0
  138. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/synacos/example.py +0 -0
  139. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/synacos/example2.py +0 -0
  140. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/synacos/feign.py +0 -0
  141. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/synacos/feign_client.py +0 -0
  142. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/synacos/nacos_client_base.py +0 -0
  143. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/synacos/nacos_config_manager.py +0 -0
  144. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/synacos/nacos_heartbeat_manager.py +0 -0
  145. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/synacos/nacos_service.py +0 -0
  146. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/synacos/nacos_service_discovery.py +0 -0
  147. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/synacos/nacos_service_registration.py +0 -0
  148. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/synacos/param.py +0 -0
  149. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/tests/deep_agent_server.py +0 -0
  150. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/tests/test_deep_agent.py +0 -0
  151. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/tests/test_email.py +0 -0
  152. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/tests/test_mq.py +0 -0
  153. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/tools/__init__.py +0 -0
  154. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/tools/async_utils.py +0 -0
  155. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/tools/docs.py +0 -0
  156. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/tools/env.py +0 -0
  157. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/tools/merge_headers.py +0 -0
  158. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/tools/snowflake.py +0 -0
  159. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/tools/syemail.py +0 -0
  160. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon/tools/timing.py +0 -0
  161. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon_python_lib.egg-info/SOURCES.txt +0 -0
  162. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon_python_lib.egg-info/dependency_links.txt +0 -0
  163. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon_python_lib.egg-info/entry_points.txt +0 -0
  164. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/src/sycommon_python_lib.egg-info/requires.txt +0 -0
  165. {sycommon_python_lib-0.2.1a5 → sycommon_python_lib-0.2.1a7}/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.1a5
3
+ Version: 0.2.1a7
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.1a5"
3
+ version = "0.2.1a7"
4
4
  description = "Add your description here"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.11"
@@ -73,20 +73,27 @@ def resolve_sandbox_path(path: str, workspace: str) -> str:
73
73
  - /skills/foo.md -> {workspace}/skills/foo.md
74
74
  - skills/foo.md -> {workspace}/skills/foo.md
75
75
 
76
+ 如果传入的绝对路径已经在工作目录内,则直接返回。
77
+
76
78
  同时防止路径遍历攻击,确保解析后的路径仍在工作目录内
77
79
  """
80
+ # 规范化路径
81
+ path = os.path.normpath(path)
82
+ workspace = os.path.normpath(workspace)
83
+
84
+ # 如果路径已经在工作目录内,直接返回
85
+ if path.startswith(workspace + os.sep) or path == workspace:
86
+ return path
87
+
78
88
  # 移除开头的 / 使其成为相对路径
79
89
  if os.path.isabs(path):
80
- path = path.lstrip('/')
81
-
82
- # 规范化路径,防止 ../ 等路径遍历
83
- path = os.path.normpath(path)
90
+ path = path.lstrip(os.sep)
84
91
 
85
92
  # 拼接到工作目录
86
93
  resolved = os.path.normpath(os.path.join(workspace, path))
87
94
 
88
95
  # 安全检查:确保最终路径在工作目录内
89
- if not resolved.startswith(workspace):
96
+ if not resolved.startswith(workspace + os.sep) and resolved != workspace:
90
97
  raise ValueError(f"Path traversal detected: {path}")
91
98
 
92
99
  return resolved
@@ -417,7 +424,7 @@ def setup_sandbox_handler(app: FastAPI, config: dict = None):
417
424
 
418
425
  @sandbox_router.post("/write", response_model=WriteResponse)
419
426
  async def write_file(req: WriteRequest):
420
- """写入新文件"""
427
+ """写入文件(如果文件存在则覆盖)"""
421
428
  workspace = get_user_workspace(req.user_id)
422
429
  try:
423
430
  file_path = resolve_sandbox_path(req.file_path, workspace)
@@ -430,18 +437,20 @@ def setup_sandbox_handler(app: FastAPI, config: dict = None):
430
437
  try:
431
438
  content = base64.b64decode(req.content).decode('utf-8')
432
439
 
433
- if os.path.exists(file_path):
434
- SYLogger.error(f"[Sandbox Server] 写入失败: 文件已存在 {file_path}")
435
- return WriteResponse(error=f"File '{file_path}' already exists", path=None)
436
-
440
+ # 创建父目录(如果不存在)
437
441
  parent = os.path.dirname(file_path)
438
442
  if parent:
439
443
  os.makedirs(parent, exist_ok=True)
440
444
 
445
+ # 检查文件是否已存在(用于日志)
446
+ is_overwrite = os.path.exists(file_path)
447
+
448
+ # 直接写入,如果文件存在则覆盖
441
449
  with open(file_path, 'w') as f:
442
450
  f.write(content)
443
451
 
444
- SYLogger.info(f"[Sandbox Server] 写入成功: {file_path} ({len(content)} 字符)")
452
+ action = "覆盖" if is_overwrite else "新建"
453
+ SYLogger.info(f"[Sandbox Server] 写入成功({action}): {file_path} ({len(content)} 字符)")
445
454
  return WriteResponse(error=None, path=file_path)
446
455
 
447
456
  except Exception as e:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sycommon-python-lib
3
- Version: 0.2.1a5
3
+ Version: 0.2.1a7
4
4
  Summary: Add your description here
5
5
  Requires-Python: >=3.11
6
6
  Description-Content-Type: text/markdown