sycommon-python-lib 0.2.1a41__tar.gz → 0.2.1a43__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.1a41 → sycommon_python_lib-0.2.1a43}/PKG-INFO +1 -1
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/pyproject.toml +1 -1
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/agent/sandbox/file_ops.py +8 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/agent/sandbox/http_sandbox_backend.py +1 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/middleware/sandbox.py +24 -5
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon_python_lib.egg-info/PKG-INFO +1 -1
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/README.md +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/setup.cfg +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/command/__init__.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/command/cli.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/command/core/__init__.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/command/core/console.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/command/core/models.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/command/core/project.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/command/core/utils.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/command/templates/__init__.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/command/templates/agent/__init__.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/command/templates/base/__init__.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/command/templates/web/__init__.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/__init__.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/agent/__init__.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/agent/agent_manager.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/agent/chat_events.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/agent/deep_agent.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/agent/multi_agent_team.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/agent/sandbox/__init__.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/agent/sandbox/sandbox_pool.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/agent/sandbox/sandbox_recovery.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/agent/sandbox/session.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/auth/__init__.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/auth/ldap_service.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/config/Config.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/config/DatabaseConfig.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/config/ElasticsearchConfig.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/config/EmbeddingConfig.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/config/LLMConfig.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/config/LangfuseConfig.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/config/MQConfig.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/config/RedisConfig.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/config/RerankerConfig.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/config/SentryConfig.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/config/__init__.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/database/async_base_db_service.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/database/async_database_service.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/database/base_db_service.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/database/database_service.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/database/elasticsearch_service.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/database/redis_service.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/database/token_usage_db_service.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/health/__init__.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/health/health_check.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/health/metrics.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/health/ping.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/heartbeat_process/__init__.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/heartbeat_process/heartbeat_config.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/heartbeat_process/heartbeat_process_manager.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/heartbeat_process/heartbeat_process_worker.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/llm/__init__.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/llm/embedding.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/llm/get_llm.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/llm/llm_logger.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/llm/llm_tokens.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/llm/llm_with_token_tracking.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/llm/native_with_fallback_runnable.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/llm/output_fixing_runnable.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/llm/struct_token.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/llm/sy_langfuse.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/llm/token_usage_es_service.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/llm/token_usage_mysql_service.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/llm/usage_token.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/logging/__init__.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/logging/async_sql_logger.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/logging/kafka_log.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/logging/logger_levels.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/logging/logger_wrapper.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/logging/process_logger.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/logging/sql_logger.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/middleware/__init__.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/middleware/background_execution.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/middleware/context.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/middleware/cors.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/middleware/docs.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/middleware/exception.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/middleware/middleware.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/middleware/monitor_memory.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/middleware/mq.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/middleware/timeout.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/middleware/traceid.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/models/__init__.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/models/base_http.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/models/log.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/models/mqlistener_config.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/models/mqmsg_model.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/models/mqsend_config.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/models/sandbox.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/models/sso_user.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/models/token_usage.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/models/token_usage_mysql.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/notice/__init__.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/notice/uvicorn_monitor.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/rabbitmq/process_pool_consumer.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/rabbitmq/rabbitmq_client.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/rabbitmq/rabbitmq_pool.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/rabbitmq/rabbitmq_service.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/rabbitmq/rabbitmq_service_client_manager.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/rabbitmq/rabbitmq_service_connection_monitor.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/rabbitmq/rabbitmq_service_consumer_manager.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/rabbitmq/rabbitmq_service_core.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/rabbitmq/rabbitmq_service_producer_manager.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/sentry/__init__.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/sentry/sy_sentry.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/services.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/sse/__init__.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/sse/event.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/sse/sse.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/synacos/__init__.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/synacos/example.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/synacos/example2.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/synacos/feign.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/synacos/feign_client.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/synacos/nacos_client_base.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/synacos/nacos_config_manager.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/synacos/nacos_heartbeat_manager.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/synacos/nacos_service.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/synacos/nacos_service_discovery.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/synacos/nacos_service_registration.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/synacos/param.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/tests/deep_agent_server.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/tests/test_deep_agent.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/tests/test_email.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/tests/test_mq.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/tools/__init__.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/tools/async_utils.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/tools/docs.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/tools/env.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/tools/merge_headers.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/tools/snowflake.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/tools/syemail.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/tools/timing.py +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon_python_lib.egg-info/SOURCES.txt +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon_python_lib.egg-info/dependency_links.txt +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon_python_lib.egg-info/entry_points.txt +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon_python_lib.egg-info/requires.txt +0 -0
- {sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon_python_lib.egg-info/top_level.txt +0 -0
{sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/agent/sandbox/file_ops.py
RENAMED
|
@@ -140,15 +140,19 @@ class FileOperationsMixin:
|
|
|
140
140
|
"""列出目录内容"""
|
|
141
141
|
try:
|
|
142
142
|
self._ensure_synced_sync()
|
|
143
|
+
print(f"[Sandbox-DEBUG] ls() called with path={repr(path)}, user_id={repr(self.user_id)}", flush=True)
|
|
143
144
|
SYLogger.info(f"[Sandbox] 列出目录: {path}")
|
|
144
145
|
result = self._post_sync(f"{SANDBOX_API_PREFIX}/ls", {
|
|
145
146
|
"path": path,
|
|
146
147
|
"user_id": self.user_id
|
|
147
148
|
})
|
|
149
|
+
print(f"[Sandbox-DEBUG] ls() raw result type={type(result).__name__}, repr={repr(result)[:500]}", flush=True)
|
|
148
150
|
entries = [FileInfo(**item) for item in result]
|
|
151
|
+
print(f"[Sandbox-DEBUG] ls() parsed entries={len(entries)}", flush=True)
|
|
149
152
|
SYLogger.info(f"[Sandbox] 目录内容: {len(entries)} 项")
|
|
150
153
|
return LsResult(entries=entries)
|
|
151
154
|
except Exception as e:
|
|
155
|
+
print(f"[Sandbox-DEBUG] ls() EXCEPTION: {type(e).__name__}: {e}", flush=True)
|
|
152
156
|
SYLogger.error(f"[Sandbox] 列出目录失败: {e}")
|
|
153
157
|
return LsResult(error=str(e))
|
|
154
158
|
|
|
@@ -156,15 +160,19 @@ class FileOperationsMixin:
|
|
|
156
160
|
"""异步列出目录内容(真正的异步实现)"""
|
|
157
161
|
try:
|
|
158
162
|
await self._ensure_synced_async()
|
|
163
|
+
print(f"[Sandbox-DEBUG] als() called with path={repr(path)}, user_id={repr(self.user_id)}, base_url={repr(self._base_url if hasattr(self, '_base_url') else 'N/A')}", flush=True)
|
|
159
164
|
SYLogger.info(f"[Sandbox] 异步列出目录: {path}")
|
|
160
165
|
result = await self._post_async_with_failover(f"{SANDBOX_API_PREFIX}/ls", {
|
|
161
166
|
"path": path,
|
|
162
167
|
"user_id": self.user_id
|
|
163
168
|
})
|
|
169
|
+
print(f"[Sandbox-DEBUG] als() raw result type={type(result).__name__}, repr={repr(result)[:500]}", flush=True)
|
|
164
170
|
entries = [FileInfo(**item) for item in result]
|
|
171
|
+
print(f"[Sandbox-DEBUG] als() parsed entries={len(entries)}, first 3 paths={[e.get('path','?') if isinstance(e, dict) else getattr(e, 'path','?') for e in entries[:3]]}", flush=True)
|
|
165
172
|
SYLogger.info(f"[Sandbox] 目录内容: {len(entries)} 项")
|
|
166
173
|
return LsResult(entries=entries)
|
|
167
174
|
except Exception as e:
|
|
175
|
+
print(f"[Sandbox-DEBUG] als() EXCEPTION: {type(e).__name__}: {e}", flush=True)
|
|
168
176
|
SYLogger.error(f"[Sandbox] 异步列出目录失败: {e}")
|
|
169
177
|
return LsResult(error=str(e))
|
|
170
178
|
|
|
@@ -101,6 +101,7 @@ class HTTPSandboxBackend(FileOperationsMixin, SandboxBackendProtocol):
|
|
|
101
101
|
self._sync_dirs = sync_dirs or []
|
|
102
102
|
self._auto_sync = auto_sync
|
|
103
103
|
self._synced = False
|
|
104
|
+
self._workspace_verified = False
|
|
104
105
|
|
|
105
106
|
# Nacos 配置(用于故障转移)
|
|
106
107
|
self._nacos_service_name = nacos_service_name
|
{sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/middleware/sandbox.py
RENAMED
|
@@ -619,14 +619,18 @@ COMMAND_EOF
|
|
|
619
619
|
async def ls_info(req: LsRequest):
|
|
620
620
|
"""列出目录内容"""
|
|
621
621
|
workspace = get_user_workspace(req.user_id)
|
|
622
|
+
print(f"[Sandbox-Server-DEBUG] /ls called: path={repr(req.path)}, user_id={repr(req.user_id)}, workspace={repr(workspace)}", flush=True)
|
|
622
623
|
try:
|
|
623
624
|
target_path = resolve_sandbox_path(req.path, workspace)
|
|
625
|
+
print(f"[Sandbox-Server-DEBUG] resolved target_path={repr(target_path)}", flush=True)
|
|
624
626
|
except ValueError as e:
|
|
625
627
|
SYLogger.error(f"[Sandbox Server] 列目录失败: {e}")
|
|
628
|
+
print(f"[Sandbox-Server-DEBUG] resolve_sandbox_path FAILED: {e}", flush=True)
|
|
626
629
|
return []
|
|
627
630
|
|
|
628
631
|
if not os.path.isdir(target_path):
|
|
629
632
|
SYLogger.error(f"[Sandbox Server] 列目录失败: 目录不存在 {target_path}")
|
|
633
|
+
print(f"[Sandbox-Server-DEBUG] target_path is NOT a dir: {target_path}", flush=True)
|
|
630
634
|
return []
|
|
631
635
|
|
|
632
636
|
SYLogger.info(f"[Sandbox Server] 列出目录: {target_path}")
|
|
@@ -634,7 +638,11 @@ COMMAND_EOF
|
|
|
634
638
|
try:
|
|
635
639
|
with os.scandir(target_path) as it:
|
|
636
640
|
for entry in it:
|
|
637
|
-
|
|
641
|
+
# 返回虚拟路径(相对于用户工作空间),而不是绝对文件系统路径
|
|
642
|
+
# 这样 AI 后续操作(ls、read_file 等)能正确解析路径
|
|
643
|
+
abs_path = os.path.join(target_path, entry.name)
|
|
644
|
+
virtual_path = "/" + os.path.relpath(abs_path, workspace)
|
|
645
|
+
info = FileInfo(path=virtual_path)
|
|
638
646
|
try:
|
|
639
647
|
info.is_dir = entry.is_dir(follow_symlinks=False)
|
|
640
648
|
if not info.is_dir:
|
|
@@ -646,6 +654,7 @@ COMMAND_EOF
|
|
|
646
654
|
except Exception as e:
|
|
647
655
|
SYLogger.error(f"[Sandbox Server] 列目录异常: {e}")
|
|
648
656
|
|
|
657
|
+
print(f"[Sandbox-Server-DEBUG] returning {len(results)} entries: {[r.path for r in results[:10]]}", flush=True)
|
|
649
658
|
SYLogger.info(f"[Sandbox Server] 目录内容: {len(results)} 项")
|
|
650
659
|
return results
|
|
651
660
|
|
|
@@ -849,7 +858,9 @@ COMMAND_EOF
|
|
|
849
858
|
|
|
850
859
|
results = []
|
|
851
860
|
for m in matches:
|
|
852
|
-
|
|
861
|
+
# 返回虚拟路径,与 ls 保持一致
|
|
862
|
+
virtual_path = "/" + os.path.relpath(m, workspace)
|
|
863
|
+
info = FileInfo(path=virtual_path)
|
|
853
864
|
try:
|
|
854
865
|
info.is_dir = os.path.isdir(m)
|
|
855
866
|
if not info.is_dir:
|
|
@@ -903,6 +914,11 @@ COMMAND_EOF
|
|
|
903
914
|
continue
|
|
904
915
|
|
|
905
916
|
path_part = line[:first_colon]
|
|
917
|
+
# 将绝对路径转换为虚拟路径
|
|
918
|
+
try:
|
|
919
|
+
virtual_path_part = "/" + os.path.relpath(path_part, workspace)
|
|
920
|
+
except ValueError:
|
|
921
|
+
virtual_path_part = path_part
|
|
906
922
|
try:
|
|
907
923
|
line_num = int(line[first_colon + 1:second_colon])
|
|
908
924
|
except ValueError:
|
|
@@ -910,7 +926,7 @@ COMMAND_EOF
|
|
|
910
926
|
text_part = line[second_colon + 1:]
|
|
911
927
|
|
|
912
928
|
matches.append(GrepMatch(
|
|
913
|
-
path=
|
|
929
|
+
path=virtual_path_part,
|
|
914
930
|
line=line_num,
|
|
915
931
|
text=text_part
|
|
916
932
|
))
|
|
@@ -941,7 +957,9 @@ COMMAND_EOF
|
|
|
941
957
|
try:
|
|
942
958
|
for item in os.listdir(target_path):
|
|
943
959
|
item_path = os.path.join(target_path, item)
|
|
944
|
-
|
|
960
|
+
# 返回虚拟路径
|
|
961
|
+
virtual_path = "/" + os.path.relpath(item_path, workspace)
|
|
962
|
+
info = FileInfo(path=virtual_path)
|
|
945
963
|
try:
|
|
946
964
|
info.is_dir = os.path.isdir(item_path)
|
|
947
965
|
if not info.is_dir:
|
|
@@ -971,7 +989,8 @@ COMMAND_EOF
|
|
|
971
989
|
return LsResponse(files=files, warning=f"Results truncated at {MAX_FILES} files")
|
|
972
990
|
|
|
973
991
|
filepath = os.path.join(root, filename)
|
|
974
|
-
|
|
992
|
+
virtual_filepath = "/" + os.path.relpath(filepath, workspace)
|
|
993
|
+
file_info = FileInfo(path=virtual_filepath)
|
|
975
994
|
try:
|
|
976
995
|
file_info.is_dir = False
|
|
977
996
|
file_info.size = os.path.getsize(filepath)
|
|
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.1a41 → sycommon_python_lib-0.2.1a43}/src/command/templates/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/command/templates/base/__init__.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/command/templates/web/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/agent/__init__.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/agent/agent_manager.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/agent/chat_events.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/agent/deep_agent.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/agent/multi_agent_team.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/agent/sandbox/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/agent/sandbox/session.py
RENAMED
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/auth/ldap_service.py
RENAMED
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/config/DatabaseConfig.py
RENAMED
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/config/EmbeddingConfig.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/config/LLMConfig.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/config/LangfuseConfig.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/config/MQConfig.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/config/RedisConfig.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/config/RerankerConfig.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/config/SentryConfig.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/config/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/database/redis_service.py
RENAMED
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/health/__init__.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/health/health_check.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/health/metrics.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
|
{sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/llm/llm_logger.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/llm/llm_tokens.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/llm/struct_token.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/llm/sy_langfuse.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/llm/usage_token.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/logging/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/logging/kafka_log.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/logging/logger_levels.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/logging/logger_wrapper.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/logging/process_logger.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/logging/sql_logger.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/middleware/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/middleware/context.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/middleware/cors.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/middleware/docs.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/middleware/exception.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/middleware/middleware.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/middleware/timeout.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/middleware/traceid.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/models/__init__.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/models/base_http.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/models/mqmsg_model.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/models/mqsend_config.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/models/sandbox.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/models/sso_user.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/models/token_usage.py
RENAMED
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/notice/__init__.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/notice/uvicorn_monitor.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/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
|
{sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/sentry/__init__.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/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.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/synacos/__init__.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/synacos/example.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/synacos/example2.py
RENAMED
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/synacos/feign_client.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/synacos/nacos_service.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/tests/test_deep_agent.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/tests/test_email.py
RENAMED
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/tools/__init__.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/tools/async_utils.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/tools/merge_headers.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.1a41 → sycommon_python_lib-0.2.1a43}/src/sycommon/tools/snowflake.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
|