sycommon-python-lib 0.2.7a23__tar.gz → 0.2.7a25__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.7a23 → sycommon_python_lib-0.2.7a25}/PKG-INFO +1 -1
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/pyproject.toml +1 -1
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/agent/sandbox/minio_sync.py +93 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/middleware/sandbox.py +189 -3
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/services.py +8 -1
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon_python_lib.egg-info/PKG-INFO +1 -1
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/README.md +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/setup.cfg +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/cli.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/core/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/core/console.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/core/models.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/core/project.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/core/utils.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/agent/README.md.tpl +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/agent/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/agent/agent/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/agent/agent/main_agent.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/agent/agent/nodes/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/agent/agent/nodes/example_node.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/agent/agent/states/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/agent/agent/states/agent_state.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/agent/api/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/agent/api/query.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/agent/api/sse/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/agent/api/sse/agent.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/agent/app.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/agent/client/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/agent/db/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/agent/db/model/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/agent/db/model/entity.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/agent/db/service.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/agent/model/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/agent/model/parse.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/agent/tools/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/agent/tools/mq.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/base/.env.tpl +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/base/.gitignore.tpl +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/base/Dockerfile.tpl +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/base/README.md.tpl +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/base/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/base/app.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/base/app.yaml.tpl +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/base/client/FileServiceClient.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/base/client/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/base/model/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/base/model/file_info.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/base/requirements.txt.tpl +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/cli/README.md.tpl +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/cli/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/cli/app.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/cli/commands/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/cli/commands/hello.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/cli/pyproject.toml.tpl +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/cli/tools/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/web/README.md.tpl +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/web/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/web/api/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/web/api/echo.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/web/api/sse/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/web/api/sse/echo.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/web/app.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/web/client/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/web/model/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/web/tools/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/web/tools/mq.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/nexus/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/__main__.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/acp/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/acp/config.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/acp/executor.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/acp/registry.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/acp/server.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/agents/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/agents/factory.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/agents/prompts.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/cdp/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/cdp/browser.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/cdp/capabilities/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/cdp/capabilities/console.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/cdp/capabilities/dom.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/cdp/capabilities/network.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/cdp/capabilities/page_errors.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/cdp/capabilities/performance.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/cdp/capabilities/screenshot.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/cdp/client.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/cdp/protocol.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/cdp/repl.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/cli.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/commands/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/commands/acp_cmd.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/commands/cdp_cmd.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/commands/chat_cmd.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/commands/create_cmd.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/commands/evaluate_cmd.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/commands/init_cmd.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/commands/memory_cmd.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/commands/resume_cmd.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/commands/rollback_cmd.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/commands/run_cmd.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/core/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/core/backend.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/core/config.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/core/display.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/core/git_integration.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/core/llm.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/core/state.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/evaluate/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/evaluate/api_evaluator.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/memory/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/memory/compressor.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/memory/full.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/memory/hot.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/memory/manager.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/memory/warm.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/mode/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/mode/create.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/mode/optimize.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/models/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/models/config_models.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/rl/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/rl/baseline_tests.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/rl/checkpoint.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/rl/convergence.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/rl/diagnosis.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/rl/engine.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/rl/environment.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/rl/experience.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/rl/harness_prompts.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/rl/history.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/rl/optimization_logger.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/rl/pre_validation.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/rl/reward.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/rl/strategy_bandit.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/rl/strategy_generator.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/rl/strategy_prompts.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/simple_chat_agent.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/skills/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/agent/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/agent/acp/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/agent/acp/client.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/agent/acp/fetch.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/agent/acp/ssh_init.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/agent/acp/tool.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/agent/agent_manager.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/agent/chat_events.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/agent/deep_agent.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/agent/mcp/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/agent/mcp/models.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/agent/mcp/tool_loader.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/agent/middleware/sandbox_path_guard.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/agent/middleware/sensitive_guard.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/agent/middleware/sitecustomize.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/agent/middleware/skill_api_whitelist.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/agent/middleware/skill_wl_check.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/agent/middleware/skill_write_guard.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/agent/multi_agent_team.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/agent/sandbox/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/agent/sandbox/consistent_hash.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/agent/sandbox/file_ops.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/agent/sandbox/http_sandbox_backend.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/agent/sandbox/sandbox_pool.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/agent/sandbox/sandbox_recovery.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/agent/sandbox/session.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/agent/summarization_utils.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/auth/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/auth/ldap_service.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/auth/oa_cache.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/auth/oa_crypto.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/auth/oa_service.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/auth/wecom_ldap_service.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/config/ACPAgentConfig.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/config/Config.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/config/DatabaseConfig.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/config/ElasticsearchConfig.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/config/EmbeddingConfig.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/config/LLMConfig.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/config/LangfuseConfig.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/config/MQConfig.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/config/PgConfig.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/config/RedisConfig.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/config/RerankerConfig.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/config/SentryConfig.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/config/SkillApiWhitelistConfig.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/config/XxlJobConfig.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/config/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/config/config_change_notifier.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/database/async_base_db_service.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/database/async_database_service.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/database/base_db_service.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/database/database_service.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/database/elasticsearch_service.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/database/pg_checkpoint_service.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/database/redis_service.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/database/resilient_pg_saver.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/database/token_usage_db_service.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/health/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/health/health_check.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/health/metrics.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/health/ping.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/heartbeat_process/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/heartbeat_process/heartbeat_config.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/heartbeat_process/heartbeat_process_manager.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/heartbeat_process/heartbeat_process_worker.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/llm/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/llm/embedding.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/llm/get_llm.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/llm/llm_logger.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/llm/llm_tokens.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/llm/llm_with_token_tracking.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/llm/native_with_fallback_runnable.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/llm/output_fixing_runnable.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/llm/struct_token.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/llm/sy_langfuse.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/llm/tiktoken_cache/9b5ad71b2ce5302211f9c61530b329a4922fc6a4 +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/llm/tiktoken_cache/fb374d419588a4632f3f557e76b4b70aebbca790 +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/llm/token_usage_es_service.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/llm/token_usage_mysql_service.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/llm/token_utils.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/llm/usage_token.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/logging/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/logging/async_sql_logger.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/logging/kafka_log.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/logging/log_masker.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/logging/logger_levels.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/logging/logger_wrapper.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/logging/process_logger.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/logging/sql_logger.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/mcp_server/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/mcp_server/server.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/middleware/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/middleware/context.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/middleware/cors.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/middleware/docs.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/middleware/exception.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/middleware/middleware.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/middleware/monitor_memory.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/middleware/mq.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/middleware/timeout.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/middleware/token_tracking.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/middleware/tool_result_truncation.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/middleware/traceid.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/models/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/models/base_http.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/models/log.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/models/mcp_server_config.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/models/mqlistener_config.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/models/mqmsg_model.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/models/mqsend_config.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/models/sandbox.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/models/sso_user.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/models/token_usage.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/models/token_usage_mysql.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/models/xxljob_handler_config.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/notice/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/notice/uvicorn_monitor.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/notice/wecom_message.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/rabbitmq/process_pool_consumer.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/rabbitmq/rabbitmq_client.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/rabbitmq/rabbitmq_pool.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/rabbitmq/rabbitmq_service.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/rabbitmq/rabbitmq_service_client_manager.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/rabbitmq/rabbitmq_service_connection_monitor.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/rabbitmq/rabbitmq_service_consumer_manager.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/rabbitmq/rabbitmq_service_core.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/rabbitmq/rabbitmq_service_producer_manager.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/sentry/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/sentry/sy_sentry.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/sse/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/sse/event.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/sse/sse.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/synacos/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/synacos/example.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/synacos/example2.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/synacos/feign.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/synacos/feign_client.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/synacos/nacos_client_base.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/synacos/nacos_config_manager.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/synacos/nacos_heartbeat_manager.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/synacos/nacos_service.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/synacos/nacos_service_discovery.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/synacos/nacos_service_registration.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/synacos/param.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/tests/deep_agent_server.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/tests/test_consistent_hash.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/tests/test_consumer_loss_rootcause.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/tests/test_consumer_recovery.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/tests/test_deep_agent.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/tests/test_dynamic_max_tokens.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/tests/test_email.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/tests/test_encoding_cache.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/tests/test_fix_verification.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/tests/test_mcp_server.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/tests/test_minimax_reasoning.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/tests/test_mq.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/tests/test_oa_login.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/tests/test_queue_priority_fallback.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/tests/test_real_summarization.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/tests/test_summarization_config.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/tests/test_summarization_real.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/tests/test_summary_leak_e2e.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/tools/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/tools/async_utils.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/tools/docs.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/tools/env.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/tools/merge_headers.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/tools/snowflake.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/tools/syemail.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/tools/timing.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/xxljob/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/xxljob/xxljob_service.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon_python_lib.egg-info/SOURCES.txt +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon_python_lib.egg-info/dependency_links.txt +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon_python_lib.egg-info/entry_points.txt +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon_python_lib.egg-info/requires.txt +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon_python_lib.egg-info/top_level.txt +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/tests/test_acp_tool.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/tests/test_asyncio_logging.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/tests/test_config_change_notifier.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/tests/test_hotreload_snapshot.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/tests/test_llm_apikey_contextvar.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/tests/test_log_masker.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/tests/test_resilient_pg_saver.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/tests/test_sandbox_path_guard.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/tests/test_sensitive_guard.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/tests/test_simple_chat_agent.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/tests/test_skill_regex_upgrade.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/tests/test_skill_write_guard.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/tests/test_sycli.py +0 -0
- {sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/tests/test_sync_skills_to_sandbox.py +0 -0
|
@@ -244,6 +244,99 @@ class MinioSyncService(metaclass=SingletonMeta):
|
|
|
244
244
|
self.aremove_prefix(f"{uid}/current/large_tool_results/"),
|
|
245
245
|
)
|
|
246
246
|
|
|
247
|
+
# ============== tmp 目录 pip 残留清理(MinIO 侧,与沙箱侧对称双删)==============
|
|
248
|
+
|
|
249
|
+
def _list_pip_tmp_object_keys(self, user_prefix: str) -> list[str]:
|
|
250
|
+
"""列出某用户 MinIO current/tmp/ 下 pip-* 开头的对象 key。
|
|
251
|
+
|
|
252
|
+
沙箱文件会同步到 {user}/current/{相对路径},pip 残留落 tmp/ → 对应
|
|
253
|
+
{user}/current/tmp/pip-*。这里只 list,不删(删除在调用方,便于按用户聚合)。
|
|
254
|
+
|
|
255
|
+
Args:
|
|
256
|
+
user_prefix: 形如 "osulcode.xiao/current/" 的 MinIO 前缀
|
|
257
|
+
|
|
258
|
+
Returns:
|
|
259
|
+
匹配 {user_prefix}tmp/pip- 的 object_name 列表。
|
|
260
|
+
"""
|
|
261
|
+
if not self._client:
|
|
262
|
+
return []
|
|
263
|
+
prefix = f"{user_prefix}tmp/pip-"
|
|
264
|
+
try:
|
|
265
|
+
return [
|
|
266
|
+
obj.object_name
|
|
267
|
+
for obj in self._client.list_objects(self._bucket, prefix=prefix, recursive=True)
|
|
268
|
+
]
|
|
269
|
+
except Exception as e:
|
|
270
|
+
SYLogger.warning(f"[MinIO] list pip tmp 失败: prefix={prefix}, error={e}")
|
|
271
|
+
return []
|
|
272
|
+
|
|
273
|
+
def cleanup_pip_tmp(self, now_ts: float = None) -> int:
|
|
274
|
+
"""全量清理所有用户 MinIO current/tmp/ 下的 pip-* 残留。
|
|
275
|
+
|
|
276
|
+
供「服务启动」全量清理调用,与 sandbox.cleanup_all_pip_tmp_residue_async 配对。
|
|
277
|
+
递归 list 整个 bucket,按路径段筛 /current/tmp/pip-*(各用户的残留都在
|
|
278
|
+
{user}/current/tmp/pip-* 下,前缀含动态 user_id,故不能写死前缀,必须全量扫
|
|
279
|
+
再按路径模式过滤)。同步实现,调用方用 asyncio.to_thread 包装。
|
|
280
|
+
|
|
281
|
+
Args:
|
|
282
|
+
now_ts: 预留(MinIO 侧 mtime 过滤较复杂且收益低,当前全删;沙箱侧已用
|
|
283
|
+
mtime 兜底避免误删正在跑的 pip)。
|
|
284
|
+
|
|
285
|
+
Returns:
|
|
286
|
+
实际删除的对象数量。
|
|
287
|
+
"""
|
|
288
|
+
if not self._client:
|
|
289
|
+
return 0
|
|
290
|
+
removed = 0
|
|
291
|
+
try:
|
|
292
|
+
# 递归列出整个 bucket,筛出路径含 /current/tmp/pip- 的对象。
|
|
293
|
+
# 各用户残留 = {user}/current/tmp/pip-*,user_id 动态,故必须全量扫后按
|
|
294
|
+
# 路径模式过滤,不能写死前缀。
|
|
295
|
+
keys = [
|
|
296
|
+
obj.object_name
|
|
297
|
+
for obj in self._client.list_objects(self._bucket, recursive=True)
|
|
298
|
+
if "/current/tmp/pip-" in obj.object_name
|
|
299
|
+
]
|
|
300
|
+
for key in keys:
|
|
301
|
+
if self.remove_object(key):
|
|
302
|
+
removed += 1
|
|
303
|
+
except Exception as e:
|
|
304
|
+
SYLogger.warning(f"[MinIO] cleanup_pip_tmp 全量清理异常: {e}")
|
|
305
|
+
return removed
|
|
306
|
+
|
|
307
|
+
def cleanup_pip_tmp_for_user(self, user_id: str, now_ts: float = None) -> int:
|
|
308
|
+
"""清理单个用户 MinIO current/tmp/ 下的 pip-* 残留。
|
|
309
|
+
|
|
310
|
+
供「对话结束」单用户清理调用,与 sandbox.cleanup_user_pip_tmp_residue_async 配对。
|
|
311
|
+
|
|
312
|
+
Args:
|
|
313
|
+
user_id: 用户ID
|
|
314
|
+
now_ts: 预留(同 cleanup_pip_tmp,当前全删)
|
|
315
|
+
|
|
316
|
+
Returns:
|
|
317
|
+
实际删除的对象数量。
|
|
318
|
+
"""
|
|
319
|
+
uid = user_id.lower().replace(" ", "")
|
|
320
|
+
user_prefix = f"{uid}/current/"
|
|
321
|
+
keys = self._list_pip_tmp_object_keys(user_prefix)
|
|
322
|
+
if not keys:
|
|
323
|
+
return 0
|
|
324
|
+
removed = 0
|
|
325
|
+
for key in keys:
|
|
326
|
+
if self.remove_object(key):
|
|
327
|
+
removed += 1
|
|
328
|
+
if removed:
|
|
329
|
+
SYLogger.info(f"[MinIO] 清理用户 {user_id} tmp pip 残留: removed={removed}")
|
|
330
|
+
return removed
|
|
331
|
+
|
|
332
|
+
async def acleanup_pip_tmp(self, now_ts: float = None) -> int:
|
|
333
|
+
"""异步全量清理所有用户 MinIO tmp pip 残留(to_thread 包装同步实现)。"""
|
|
334
|
+
return await asyncio.to_thread(self.cleanup_pip_tmp, now_ts)
|
|
335
|
+
|
|
336
|
+
async def acleanup_pip_tmp_for_user(self, user_id: str, now_ts: float = None) -> int:
|
|
337
|
+
"""异步清理单个用户 MinIO tmp pip 残留(to_thread 包装同步实现)。"""
|
|
338
|
+
return await asyncio.to_thread(self.cleanup_pip_tmp_for_user, user_id, now_ts)
|
|
339
|
+
|
|
247
340
|
# ============== 查找最近副本 ==============
|
|
248
341
|
|
|
249
342
|
def find_latest_object_key(self, user_id: str, file_path: str) -> Optional[str]:
|
{sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycommon/middleware/sandbox.py
RENAMED
|
@@ -83,9 +83,36 @@ def _get_process_lock() -> asyncio.Lock:
|
|
|
83
83
|
PROCESS_CLEANUP_TTL = 300 # 已完成进程保留时间(秒)
|
|
84
84
|
PROCESS_CLEANUP_INTERVAL = 60 # 清理检查间隔(秒)
|
|
85
85
|
|
|
86
|
+
# tmp 目录 pip 残留清理配置
|
|
87
|
+
# pip 安装(build/setup 阶段)会在 $TMPDIR 下建一堆临时目录: pip-build-env-*、
|
|
88
|
+
# pip-unpack-*、pip-req-build-*、pip-trampoline-* 等。正常 pip 成功结束会自己清,
|
|
89
|
+
# 但被超时杀掉/中断/异常退出时这些目录就残留下来,越积越多(每个可能几十~几百 MB,
|
|
90
|
+
# 含源码/wheel/build 产物)。沙箱 $TMPDIR = {workspace}/tmp,故残留全堆在这里。
|
|
91
|
+
#
|
|
92
|
+
# 所有 pip 临时目录统一以 "pip-" 开头(pip 源码 temp_dir.py 里 mkdtemp(prefix="pip-...")
|
|
93
|
+
# 的约定),故用一个前缀覆盖全部,且对 pip 未来新增变体自动生效。刻意不用"包含
|
|
94
|
+
# pip/pip3"匹配——会误伤用户在 tmp 里自建的含 pip 字样的正常文件(如 pipeline-data、
|
|
95
|
+
# my-pip-export);也不用裸 "pip" 前缀——会误伤 pipeline-*/pipcache 等。带 "-" 边界
|
|
96
|
+
# 刚好圈住所有 pip 临时目录,又不碰用户文件。
|
|
97
|
+
_PIP_TMP_PREFIXES = ("pip-",)
|
|
98
|
+
# 只清理 N 分钟前的(mtime 兜底):pip 正在跑时这些目录 mtime 持续更新,不会误删。
|
|
99
|
+
_PIP_TMP_MIN_AGE_SECONDS = 10 * 60
|
|
100
|
+
|
|
101
|
+
# 清理触发方式(用户最终方案):
|
|
102
|
+
# - 服务启动时清一次(全量,所有用户) -> services lifespan startup 调
|
|
103
|
+
# cleanup_all_pip_tmp_residue_async()
|
|
104
|
+
# - 每次对话结束后异步清一次(单用户) -> api/chat + wecom/manager 调
|
|
105
|
+
# cleanup_user_pip_tmp_residue_async(user_id)
|
|
106
|
+
# 不再用周期 60s 轮询——启动 + 对话结束两个事件已覆盖所有产生时机。
|
|
107
|
+
|
|
86
108
|
|
|
87
109
|
async def _cleanup_finished_processes():
|
|
88
|
-
"""
|
|
110
|
+
"""周期清理已完成的过期后台进程记录(仅进程记录,不含 pip tmp)。
|
|
111
|
+
|
|
112
|
+
注:pip tmp 残留的清理改为「启动 + 对话结束」事件触发
|
|
113
|
+
(cleanup_all_pip_tmp_residue_async / cleanup_user_pip_tmp_residue_async),
|
|
114
|
+
不再在此循环里做。
|
|
115
|
+
"""
|
|
89
116
|
lock = _get_process_lock()
|
|
90
117
|
while True:
|
|
91
118
|
await asyncio.sleep(PROCESS_CLEANUP_INTERVAL)
|
|
@@ -100,6 +127,159 @@ async def _cleanup_finished_processes():
|
|
|
100
127
|
SYLogger.debug(f"[Sandbox Server] 清理过期进程: {k}")
|
|
101
128
|
|
|
102
129
|
|
|
130
|
+
# ============== tmp 目录 pip 残留清理(事件触发:启动 / 对话结束)==============
|
|
131
|
+
|
|
132
|
+
def _collect_pip_tmp_targets(tmp_dir: str, now_ts: float) -> list[str]:
|
|
133
|
+
"""收集单个用户 tmp/ 下可清理的 pip 残留目录绝对路径(不删除,仅返回清单)。
|
|
134
|
+
|
|
135
|
+
筛选规则:名称匹配 _PIP_TMP_PREFIXES 且 mtime 距 now_ts 超过 _PIP_TMP_MIN_AGE_SECONDS。
|
|
136
|
+
mtime 兜底:pip 正在跑时其临时目录 mtime 持续刷新,不会被误删。
|
|
137
|
+
|
|
138
|
+
Args:
|
|
139
|
+
tmp_dir: 某用户的 tmp 目录绝对路径(如 .../<user>/tmp)
|
|
140
|
+
now_ts: 当前时间戳(秒),用于 mtime 比较
|
|
141
|
+
|
|
142
|
+
Returns:
|
|
143
|
+
待删目录的绝对路径列表(已通过 mtime 判定)。tmp_dir 不存在时返回 []。
|
|
144
|
+
"""
|
|
145
|
+
if not os.path.isdir(tmp_dir):
|
|
146
|
+
return []
|
|
147
|
+
min_age = _PIP_TMP_MIN_AGE_SECONDS
|
|
148
|
+
targets = []
|
|
149
|
+
try:
|
|
150
|
+
for name in os.listdir(tmp_dir):
|
|
151
|
+
if not name.startswith(_PIP_TMP_PREFIXES):
|
|
152
|
+
continue
|
|
153
|
+
target = os.path.join(tmp_dir, name)
|
|
154
|
+
try:
|
|
155
|
+
mtime = os.path.getmtime(target)
|
|
156
|
+
except OSError:
|
|
157
|
+
continue # 已不在或无法 stat,跳过
|
|
158
|
+
if now_ts - mtime < min_age:
|
|
159
|
+
continue # 还"新",可能在跑,跳过
|
|
160
|
+
targets.append(target)
|
|
161
|
+
except OSError:
|
|
162
|
+
pass
|
|
163
|
+
return targets
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+
def cleanup_user_pip_tmp_residue(user_id: str, now_ts: float = None) -> int:
|
|
167
|
+
"""同步清理单个用户 tmp/ 下的 pip 残留(仅沙箱侧,不碰 MinIO)。
|
|
168
|
+
|
|
169
|
+
user_id 经 _sanitize_user_id 归一化后定位到 {WORKSPACE_BASE}/<user>/tmp/。
|
|
170
|
+
当该用户工作目录不存在时直接返回 0(不报错、不创建、不遍历)。
|
|
171
|
+
|
|
172
|
+
Args:
|
|
173
|
+
user_id: 用户ID
|
|
174
|
+
now_ts: 当前时间戳;None 则取 datetime.now().timestamp()
|
|
175
|
+
|
|
176
|
+
Returns:
|
|
177
|
+
实际删除的目录数量。
|
|
178
|
+
"""
|
|
179
|
+
if now_ts is None:
|
|
180
|
+
now_ts = datetime.now().timestamp()
|
|
181
|
+
tmp_dir = os.path.join(WORKSPACE_BASE, _sanitize_user_id(user_id), "tmp")
|
|
182
|
+
if not os.path.isdir(tmp_dir):
|
|
183
|
+
# 用户工作区不存在 → 不创建、不遍历,直接返回 0
|
|
184
|
+
return 0
|
|
185
|
+
removed = 0
|
|
186
|
+
for target in _collect_pip_tmp_targets(tmp_dir, now_ts):
|
|
187
|
+
try:
|
|
188
|
+
shutil.rmtree(target, ignore_errors=True)
|
|
189
|
+
removed += 1
|
|
190
|
+
except Exception:
|
|
191
|
+
pass # 单个删失败不影响其它
|
|
192
|
+
return removed
|
|
193
|
+
|
|
194
|
+
|
|
195
|
+
def cleanup_all_pip_tmp_residue(now_ts: float = None) -> int:
|
|
196
|
+
"""同步清理所有用户工作区 tmp/ 下的 pip 残留(仅沙箱侧,不碰 MinIO)。
|
|
197
|
+
|
|
198
|
+
遍历 {WORKSPACE_BASE} 下每个 <user>/tmp/(不存在的跳过),删除匹配前缀且
|
|
199
|
+
mtime 超过阈值的 pip 残留目录。供「服务启动」时一次性全量清理。
|
|
200
|
+
|
|
201
|
+
Args:
|
|
202
|
+
now_ts: 当前时间戳;None 则取 datetime.now().timestamp()
|
|
203
|
+
|
|
204
|
+
Returns:
|
|
205
|
+
实际删除的目录数量。
|
|
206
|
+
"""
|
|
207
|
+
if now_ts is None:
|
|
208
|
+
now_ts = datetime.now().timestamp()
|
|
209
|
+
if not os.path.isdir(WORKSPACE_BASE):
|
|
210
|
+
return 0
|
|
211
|
+
removed = 0
|
|
212
|
+
# 逐用户:snapshot listdir,避免遍历时目录被增删导致异常
|
|
213
|
+
for user_dir in list(os.listdir(WORKSPACE_BASE)):
|
|
214
|
+
tmp_dir = os.path.join(WORKSPACE_BASE, user_dir, "tmp")
|
|
215
|
+
# tmp_dir 不存在直接跳过(不创建、不报错)
|
|
216
|
+
if not os.path.isdir(tmp_dir):
|
|
217
|
+
continue
|
|
218
|
+
for target in _collect_pip_tmp_targets(tmp_dir, now_ts):
|
|
219
|
+
try:
|
|
220
|
+
shutil.rmtree(target, ignore_errors=True)
|
|
221
|
+
removed += 1
|
|
222
|
+
except Exception:
|
|
223
|
+
pass
|
|
224
|
+
return removed
|
|
225
|
+
|
|
226
|
+
|
|
227
|
+
async def cleanup_all_pip_tmp_residue_async(now_ts: float = None) -> int:
|
|
228
|
+
"""异步全量清理所有用户 tmp pip 残留(沙箱 + MinIO 双删)。
|
|
229
|
+
|
|
230
|
+
服务启动时调用。沙箱删除放线程池不阻塞事件循环;MinIO 按用户批量删
|
|
231
|
+
{user}/current/tmp/pip-* 前缀(沙箱文件已同步上 MinIO,故需双删)。
|
|
232
|
+
"""
|
|
233
|
+
if now_ts is None:
|
|
234
|
+
now_ts = datetime.now().timestamp()
|
|
235
|
+
# 1. 沙箱侧:线程池删除
|
|
236
|
+
try:
|
|
237
|
+
removed = await asyncio.to_thread(cleanup_all_pip_tmp_residue, now_ts)
|
|
238
|
+
if removed:
|
|
239
|
+
SYLogger.info(f"[Sandbox Server] 清理 tmp pip 残留: {removed} 个目录")
|
|
240
|
+
except Exception as e:
|
|
241
|
+
removed = 0
|
|
242
|
+
SYLogger.warning(f"[Sandbox Server] 清理 tmp pip 残留异常: {e}")
|
|
243
|
+
|
|
244
|
+
# 2. MinIO 侧:按用户删 {user}/current/tmp/pip-* 前缀(容错,不可用就跳过)
|
|
245
|
+
try:
|
|
246
|
+
from sycommon.agent.sandbox.minio_sync import MinioSyncService
|
|
247
|
+
service = MinioSyncService()
|
|
248
|
+
if service.is_available():
|
|
249
|
+
minio_removed = await service.acleanup_pip_tmp(now_ts=now_ts)
|
|
250
|
+
if minio_removed:
|
|
251
|
+
SYLogger.info(f"[Sandbox Server] 清理 MinIO tmp pip 残留: {minio_removed} 个对象")
|
|
252
|
+
except Exception as e:
|
|
253
|
+
# MinIO 清理失败不影响沙箱清理结果
|
|
254
|
+
SYLogger.warning(f"[Sandbox Server] 清理 MinIO tmp pip 残留异常: {e}")
|
|
255
|
+
return removed
|
|
256
|
+
|
|
257
|
+
|
|
258
|
+
async def cleanup_user_pip_tmp_residue_async(user_id: str, now_ts: float = None) -> int:
|
|
259
|
+
"""异步清理单个用户 tmp pip 残留(沙箱 + MinIO 双删)。
|
|
260
|
+
|
|
261
|
+
对话结束后调用。沙箱删除放线程池;MinIO 删该用户的 {user}/current/tmp/pip-* 前缀。
|
|
262
|
+
"""
|
|
263
|
+
if now_ts is None:
|
|
264
|
+
now_ts = datetime.now().timestamp()
|
|
265
|
+
# 1. 沙箱侧
|
|
266
|
+
try:
|
|
267
|
+
removed = await asyncio.to_thread(cleanup_user_pip_tmp_residue, user_id, now_ts)
|
|
268
|
+
except Exception as e:
|
|
269
|
+
removed = 0
|
|
270
|
+
SYLogger.warning(f"[Sandbox Server] 清理用户 {user_id} tmp pip 残留异常: {e}")
|
|
271
|
+
|
|
272
|
+
# 2. MinIO 侧(容错)
|
|
273
|
+
try:
|
|
274
|
+
from sycommon.agent.sandbox.minio_sync import MinioSyncService
|
|
275
|
+
service = MinioSyncService()
|
|
276
|
+
if service.is_available():
|
|
277
|
+
await service.acleanup_pip_tmp_for_user(user_id, now_ts=now_ts)
|
|
278
|
+
except Exception as e:
|
|
279
|
+
SYLogger.warning(f"[Sandbox Server] 清理用户 {user_id} MinIO tmp pip 残留异常: {e}")
|
|
280
|
+
return removed
|
|
281
|
+
|
|
282
|
+
|
|
103
283
|
# ============== 常量配置 ==============
|
|
104
284
|
|
|
105
285
|
MAX_OUTPUT_BYTES = 100_000
|
|
@@ -1109,7 +1289,8 @@ def setup_sandbox_handler(app: FastAPI, config: dict = None):
|
|
|
1109
1289
|
try:
|
|
1110
1290
|
entries = sorted(os.scandir(dir_path), key=lambda e: (
|
|
1111
1291
|
not e.is_dir(follow_symlinks=False), e.name.lower()))
|
|
1112
|
-
except
|
|
1292
|
+
except OSError:
|
|
1293
|
+
# 枚举期间目录被删除/失联(PermissionError/FileNotFoundError 等)
|
|
1113
1294
|
return node
|
|
1114
1295
|
|
|
1115
1296
|
for entry in entries:
|
|
@@ -1127,11 +1308,16 @@ def setup_sandbox_handler(app: FastAPI, config: dict = None):
|
|
|
1127
1308
|
child = build_tree(abs_path, virtual_path, depth + 1)
|
|
1128
1309
|
node.children.append(child)
|
|
1129
1310
|
else:
|
|
1311
|
+
# stat 单独取,跳过枚举期间被删除的瞬时文件(TOCTOU)
|
|
1312
|
+
try:
|
|
1313
|
+
st = entry.stat()
|
|
1314
|
+
except OSError:
|
|
1315
|
+
continue
|
|
1130
1316
|
child = TreeNode(
|
|
1131
1317
|
path=virtual_path,
|
|
1132
1318
|
name=entry.name,
|
|
1133
1319
|
is_dir=False,
|
|
1134
|
-
size=
|
|
1320
|
+
size=st.st_size,
|
|
1135
1321
|
)
|
|
1136
1322
|
node.children.append(child)
|
|
1137
1323
|
|
|
@@ -333,10 +333,17 @@ class Services(metaclass=SingletonMeta):
|
|
|
333
333
|
|
|
334
334
|
# 5. 启动沙箱后台清理任务(如果沙箱服务启用)
|
|
335
335
|
if instance._enable_sandbox:
|
|
336
|
-
from sycommon.middleware.sandbox import
|
|
336
|
+
from sycommon.middleware.sandbox import (
|
|
337
|
+
_cleanup_finished_processes,
|
|
338
|
+
cleanup_all_pip_tmp_residue_async,
|
|
339
|
+
)
|
|
337
340
|
sandbox_cleanup_task = asyncio.create_task(
|
|
338
341
|
_cleanup_finished_processes())
|
|
339
342
|
logging.info("沙箱后台清理任务已启动")
|
|
343
|
+
# 服务启动即全量清理一次 tmp 目录的 pip 残留(沙箱 + MinIO 双删)。
|
|
344
|
+
# fire-and-forget:不阻塞启动,失败只记日志。
|
|
345
|
+
asyncio.create_task(cleanup_all_pip_tmp_residue_async())
|
|
346
|
+
logging.info("沙箱 tmp pip 残留启动清理任务已触发")
|
|
340
347
|
|
|
341
348
|
# 6. 初始化 MCP Server(路由已全部注册,可安全读取 OpenAPI schema)
|
|
342
349
|
if instance._enable_mcp_server:
|
|
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.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/__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
|
{sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/agent/app.py.tpl
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
|
{sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/base/.env.tpl
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/base/__init__.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/base/app.py.tpl
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.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/cli/__init__.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/cli/app.py.tpl
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/web/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/command/templates/web/app.py.tpl
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/cdp/capabilities/__init__.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/cdp/capabilities/console.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/cdp/capabilities/dom.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/cdp/capabilities/network.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.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/commands/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/commands/chat_cmd.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/commands/create_cmd.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/commands/evaluate_cmd.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/commands/init_cmd.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/commands/memory_cmd.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/commands/resume_cmd.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.7a23 → sycommon_python_lib-0.2.7a25}/src/sycli/commands/rollback_cmd.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|