sycommon-python-lib 0.2.1a6__tar.gz → 0.2.1a8__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.
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/PKG-INFO +1 -1
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/pyproject.toml +1 -1
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/middleware/sandbox.py +36 -7
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon_python_lib.egg-info/PKG-INFO +1 -1
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/README.md +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/setup.cfg +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/command/__init__.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/command/cli.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/command/core/__init__.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/command/core/console.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/command/core/models.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/command/core/project.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/command/core/utils.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/command/templates/__init__.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/command/templates/agent/__init__.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/command/templates/base/__init__.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/command/templates/web/__init__.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/__init__.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/agent/__init__.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/agent/examples/01_basic_agent.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/agent/examples/02_tool_agent.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/agent/examples/03_structured_output.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/agent/examples/04_memory_agent.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/agent/examples/05_streaming.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/agent/examples/06_multi_agent.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/agent/examples/07_skills_agent.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/agent/examples/08_middleware.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/agent/examples/09_interrupt.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/agent/examples/10_custom_llm.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/agent/examples/11_complex_workflow.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/agent/examples/12_batch_processing.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/agent/examples/__init__.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/agent/examples/middleware/01_basic_monitoring.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/agent/examples/middleware/02_permission_control.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/agent/examples/middleware/03_tool_skill_filter.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/agent/examples/middleware/04_caching_retry.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/agent/examples/middleware/05_sanitization.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/agent/examples/middleware/06_tracking.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/agent/examples/middleware/07_advanced.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/agent/examples/middleware/08_progressive_skills.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/agent/examples/middleware/__init__.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/agent/examples/middleware/override_examples.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/agent/examples/virtual_employee_demo.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/agent/exports.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/agent/get_agent.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/agent/sandbox/__init__.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/agent/sandbox/file_ops.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/agent/sandbox/http_sandbox_backend.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/agent/sandbox/sandbox_pool.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/agent/sandbox/session.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/agent/skills/__init__.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/agent/skills/examples/faq_handler/scripts/search.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/agent/skills/exports.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/agent/virtual_employee.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/config/Config.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/config/DatabaseConfig.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/config/ElasticsearchConfig.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/config/EmbeddingConfig.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/config/LLMConfig.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/config/LangfuseConfig.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/config/MQConfig.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/config/RedisConfig.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/config/RerankerConfig.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/config/SentryConfig.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/config/__init__.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/database/async_base_db_service.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/database/async_database_service.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/database/base_db_service.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/database/database_service.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/database/elasticsearch_service.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/database/redis_service.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/database/token_usage_db_service.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/health/__init__.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/health/health_check.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/health/metrics.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/health/ping.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/heartbeat_process/__init__.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/heartbeat_process/heartbeat_config.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/heartbeat_process/heartbeat_process_manager.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/heartbeat_process/heartbeat_process_worker.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/llm/__init__.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/llm/embedding.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/llm/get_llm.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/llm/llm_logger.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/llm/llm_tokens.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/llm/llm_with_token_tracking.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/llm/native_with_fallback_runnable.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/llm/output_fixing_runnable.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/llm/struct_token.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/llm/sy_langfuse.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/llm/token_usage_es_service.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/llm/token_usage_mysql_service.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/llm/usage_token.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/logging/__init__.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/logging/async_sql_logger.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/logging/kafka_log.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/logging/logger_levels.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/logging/logger_wrapper.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/logging/process_logger.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/logging/sql_logger.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/middleware/__init__.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/middleware/context.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/middleware/cors.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/middleware/docs.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/middleware/exception.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/middleware/middleware.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/middleware/monitor_memory.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/middleware/mq.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/middleware/timeout.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/middleware/traceid.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/models/__init__.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/models/base_http.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/models/log.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/models/mqlistener_config.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/models/mqmsg_model.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/models/mqsend_config.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/models/sso_user.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/models/token_usage.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/models/token_usage_mysql.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/notice/__init__.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/notice/uvicorn_monitor.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/rabbitmq/process_pool_consumer.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/rabbitmq/rabbitmq_client.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/rabbitmq/rabbitmq_pool.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/rabbitmq/rabbitmq_service.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/rabbitmq/rabbitmq_service_client_manager.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/rabbitmq/rabbitmq_service_connection_monitor.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/rabbitmq/rabbitmq_service_consumer_manager.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/rabbitmq/rabbitmq_service_core.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/rabbitmq/rabbitmq_service_producer_manager.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/sentry/__init__.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/sentry/sy_sentry.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/services.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/sse/__init__.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/sse/event.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/sse/sse.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/synacos/__init__.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/synacos/example.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/synacos/example2.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/synacos/feign.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/synacos/feign_client.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/synacos/nacos_client_base.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/synacos/nacos_config_manager.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/synacos/nacos_heartbeat_manager.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/synacos/nacos_service.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/synacos/nacos_service_discovery.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/synacos/nacos_service_registration.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/synacos/param.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/tests/deep_agent_server.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/tests/test_deep_agent.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/tests/test_email.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/tests/test_mq.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/tools/__init__.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/tools/async_utils.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/tools/docs.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/tools/env.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/tools/merge_headers.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/tools/snowflake.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/tools/syemail.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/tools/timing.py +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon_python_lib.egg-info/SOURCES.txt +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon_python_lib.egg-info/dependency_links.txt +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon_python_lib.egg-info/entry_points.txt +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon_python_lib.egg-info/requires.txt +0 -0
- {sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon_python_lib.egg-info/top_level.txt +0 -0
{sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/middleware/sandbox.py
RENAMED
|
@@ -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
|
|
@@ -290,6 +297,16 @@ def setup_sandbox_handler(app: FastAPI, config: dict = None):
|
|
|
290
297
|
|
|
291
298
|
SYLogger.info(f"[Sandbox Server] 执行命令: {req.command} (user={req.user_id}, timeout={req.timeout}s)")
|
|
292
299
|
|
|
300
|
+
# 创建 workspace 内的 tmp 目录,并将其设为 TMPDIR
|
|
301
|
+
workspace_tmp = os.path.join(workspace, "tmp")
|
|
302
|
+
os.makedirs(workspace_tmp, exist_ok=True)
|
|
303
|
+
|
|
304
|
+
# 设置环境变量,让脚本使用 workspace 内的 tmp 目录
|
|
305
|
+
env = os.environ.copy()
|
|
306
|
+
env["TMPDIR"] = workspace_tmp
|
|
307
|
+
env["TEMP"] = workspace_tmp
|
|
308
|
+
env["TMP"] = workspace_tmp
|
|
309
|
+
|
|
293
310
|
try:
|
|
294
311
|
result = subprocess.run(
|
|
295
312
|
req.command,
|
|
@@ -297,7 +314,8 @@ def setup_sandbox_handler(app: FastAPI, config: dict = None):
|
|
|
297
314
|
capture_output=True,
|
|
298
315
|
text=True,
|
|
299
316
|
timeout=req.timeout,
|
|
300
|
-
cwd=workspace
|
|
317
|
+
cwd=workspace,
|
|
318
|
+
env=env
|
|
301
319
|
)
|
|
302
320
|
|
|
303
321
|
output_parts = []
|
|
@@ -379,13 +397,24 @@ def setup_sandbox_handler(app: FastAPI, config: dict = None):
|
|
|
379
397
|
async def read_file(req: ReadRequest):
|
|
380
398
|
"""读取文件内容"""
|
|
381
399
|
workspace = get_user_workspace(req.user_id)
|
|
400
|
+
original_path = req.file_path
|
|
401
|
+
|
|
382
402
|
try:
|
|
383
|
-
file_path = resolve_sandbox_path(
|
|
403
|
+
file_path = resolve_sandbox_path(original_path, workspace)
|
|
384
404
|
except ValueError as e:
|
|
385
405
|
SYLogger.error(f"[Sandbox Server] 读取失败: {e}")
|
|
386
406
|
return ReadResponse(error=str(e), content=None)
|
|
387
407
|
|
|
388
408
|
if not os.path.isfile(file_path):
|
|
409
|
+
# 如果原始路径是绝对路径且存在于工作目录外,给出明确提示
|
|
410
|
+
if os.path.isabs(original_path) and os.path.isfile(original_path):
|
|
411
|
+
SYLogger.error(f"[Sandbox Server] 读取失败: 文件存在于沙箱外 {original_path}")
|
|
412
|
+
return ReadResponse(
|
|
413
|
+
error=f"File '{original_path}' exists but is outside sandbox. "
|
|
414
|
+
f"Try reading from sandbox path: {os.path.basename(original_path)}",
|
|
415
|
+
content=None
|
|
416
|
+
)
|
|
417
|
+
|
|
389
418
|
SYLogger.error(f"[Sandbox Server] 读取失败: 文件不存在 {file_path}")
|
|
390
419
|
return ReadResponse(error=f"File '{file_path}' not found", content=None)
|
|
391
420
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/command/templates/__init__.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/command/templates/agent/__init__.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/command/templates/base/__init__.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/command/templates/web/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/agent/examples/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/agent/sandbox/__init__.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/agent/sandbox/file_ops.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/agent/sandbox/session.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/agent/skills/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/agent/skills/exports.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/agent/virtual_employee.py
RENAMED
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/config/DatabaseConfig.py
RENAMED
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/config/EmbeddingConfig.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/config/LLMConfig.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/config/LangfuseConfig.py
RENAMED
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/config/RedisConfig.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/config/RerankerConfig.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/config/SentryConfig.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/database/base_db_service.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/database/redis_service.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/health/health_check.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/llm/struct_token.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/logging/__init__.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/logging/async_sql_logger.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/logging/kafka_log.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/logging/logger_levels.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/logging/logger_wrapper.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/logging/process_logger.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/logging/sql_logger.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/middleware/__init__.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/middleware/context.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/middleware/exception.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/middleware/middleware.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/middleware/timeout.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/middleware/traceid.py
RENAMED
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/models/base_http.py
RENAMED
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/models/mqlistener_config.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/models/mqmsg_model.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/models/mqsend_config.py
RENAMED
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/models/token_usage.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/models/token_usage_mysql.py
RENAMED
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/notice/uvicorn_monitor.py
RENAMED
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/rabbitmq/rabbitmq_client.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/rabbitmq/rabbitmq_pool.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/sentry/sy_sentry.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/synacos/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/synacos/example2.py
RENAMED
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/synacos/feign_client.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/synacos/nacos_service.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/tests/deep_agent_server.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/tests/test_deep_agent.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/tests/test_email.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/tools/async_utils.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.1a6 → sycommon_python_lib-0.2.1a8}/src/sycommon/tools/merge_headers.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|