sycommon-python-lib 0.2.7a53__tar.gz → 0.2.7a54__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.7a53 → sycommon_python_lib-0.2.7a54}/PKG-INFO +1 -1
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/pyproject.toml +67 -67
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/middleware/sandbox.py +116 -57
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon_python_lib.egg-info/PKG-INFO +1 -1
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/README.md +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/setup.cfg +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/command/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/command/cli.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/command/core/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/command/core/console.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/command/core/models.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/command/core/project.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/command/core/utils.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/command/templates/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/command/templates/agent/README.md.tpl +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/command/templates/agent/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/command/templates/agent/agent/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/command/templates/agent/agent/main_agent.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/command/templates/agent/agent/nodes/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/command/templates/agent/agent/nodes/example_node.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/command/templates/agent/agent/states/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/command/templates/agent/agent/states/agent_state.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/command/templates/agent/api/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/command/templates/agent/api/query.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/command/templates/agent/api/sse/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/command/templates/agent/api/sse/agent.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/command/templates/agent/app.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/command/templates/agent/client/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/command/templates/agent/db/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/command/templates/agent/db/model/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/command/templates/agent/db/model/entity.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/command/templates/agent/db/service.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/command/templates/agent/model/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/command/templates/agent/model/parse.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/command/templates/agent/tools/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/command/templates/agent/tools/mq.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/command/templates/base/.env.tpl +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/command/templates/base/.gitignore.tpl +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/command/templates/base/Dockerfile.tpl +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/command/templates/base/README.md.tpl +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/command/templates/base/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/command/templates/base/app.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/command/templates/base/app.yaml.tpl +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/command/templates/base/client/FileServiceClient.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/command/templates/base/client/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/command/templates/base/model/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/command/templates/base/model/file_info.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/command/templates/base/requirements.txt.tpl +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/command/templates/cli/README.md.tpl +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/command/templates/cli/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/command/templates/cli/app.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/command/templates/cli/commands/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/command/templates/cli/commands/hello.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/command/templates/cli/pyproject.toml.tpl +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/command/templates/cli/tools/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/command/templates/web/README.md.tpl +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/command/templates/web/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/command/templates/web/api/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/command/templates/web/api/echo.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/command/templates/web/api/sse/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/command/templates/web/api/sse/echo.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/command/templates/web/app.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/command/templates/web/client/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/command/templates/web/model/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/command/templates/web/tools/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/command/templates/web/tools/mq.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/nexus/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycli/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycli/__main__.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycli/acp/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycli/acp/config.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycli/acp/executor.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycli/acp/registry.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycli/acp/server.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycli/agents/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycli/agents/factory.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycli/agents/prompts.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycli/cdp/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycli/cdp/browser.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycli/cdp/capabilities/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycli/cdp/capabilities/console.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycli/cdp/capabilities/dom.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycli/cdp/capabilities/network.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycli/cdp/capabilities/page_errors.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycli/cdp/capabilities/performance.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycli/cdp/capabilities/screenshot.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycli/cdp/client.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycli/cdp/protocol.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycli/cdp/repl.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycli/cli.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycli/commands/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycli/commands/acp_cmd.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycli/commands/cdp_cmd.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycli/commands/chat_cmd.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycli/commands/create_cmd.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycli/commands/evaluate_cmd.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycli/commands/init_cmd.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycli/commands/memory_cmd.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycli/commands/resume_cmd.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycli/commands/rollback_cmd.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycli/commands/run_cmd.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycli/core/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycli/core/backend.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycli/core/config.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycli/core/display.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycli/core/git_integration.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycli/core/llm.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycli/core/state.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycli/evaluate/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycli/evaluate/api_evaluator.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycli/memory/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycli/memory/compressor.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycli/memory/full.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycli/memory/hot.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycli/memory/manager.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycli/memory/warm.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycli/mode/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycli/mode/create.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycli/mode/optimize.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycli/models/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycli/models/config_models.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycli/rl/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycli/rl/baseline_tests.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycli/rl/checkpoint.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycli/rl/convergence.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycli/rl/diagnosis.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycli/rl/engine.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycli/rl/environment.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycli/rl/experience.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycli/rl/harness_prompts.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycli/rl/history.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycli/rl/optimization_logger.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycli/rl/pre_validation.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycli/rl/reward.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycli/rl/strategy_bandit.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycli/rl/strategy_generator.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycli/rl/strategy_prompts.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycli/simple_chat_agent.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycli/skills/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/agent/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/agent/acp/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/agent/acp/client.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/agent/acp/fetch.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/agent/acp/ssh_init.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/agent/acp/tool.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/agent/agent_manager.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/agent/chat_events.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/agent/deep_agent.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/agent/mcp/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/agent/mcp/models.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/agent/mcp/tool_loader.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/agent/middleware/model_request_prep.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/agent/middleware/sandbox_path_guard.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/agent/middleware/sensitive_guard.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/agent/middleware/sitecustomize.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/agent/middleware/skill_api_whitelist.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/agent/middleware/skill_wl_check.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/agent/middleware/skill_write_guard.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/agent/multi_agent_team.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/agent/reasoning_content_patch.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/agent/resume_compactor.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/agent/sandbox/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/agent/sandbox/consistent_hash.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/agent/sandbox/file_ops.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/agent/sandbox/http_sandbox_backend.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/agent/sandbox/minio_sync.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/agent/sandbox/sandbox_pool.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/agent/sandbox/sandbox_recovery.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/agent/sandbox/session.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/agent/summarization_utils.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/auth/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/auth/ldap_service.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/auth/oa_cache.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/auth/oa_crypto.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/auth/oa_service.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/auth/wecom_ldap_service.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/config/ACPAgentConfig.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/config/Config.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/config/DatabaseConfig.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/config/ElasticsearchConfig.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/config/EmbeddingConfig.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/config/LLMConfig.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/config/LangfuseConfig.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/config/MQConfig.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/config/PgConfig.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/config/RedisConfig.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/config/RerankerConfig.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/config/SentryConfig.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/config/SkillApiWhitelistConfig.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/config/XxlJobConfig.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/config/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/config/config_change_notifier.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/database/async_base_db_service.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/database/async_database_service.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/database/base_db_service.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/database/database_service.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/database/elasticsearch_service.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/database/pg_checkpoint_service.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/database/redis_service.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/database/resilient_pg_saver.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/database/token_usage_db_service.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/health/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/health/health_check.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/health/metrics.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/health/ping.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/heartbeat_process/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/heartbeat_process/heartbeat_config.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/heartbeat_process/heartbeat_process_manager.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/heartbeat_process/heartbeat_process_worker.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/llm/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/llm/embedding.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/llm/get_llm.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/llm/llm_logger.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/llm/llm_tokens.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/llm/llm_with_token_tracking.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/llm/native_with_fallback_runnable.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/llm/output_fixing_runnable.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/llm/struct_token.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/llm/sy_langfuse.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/llm/tiktoken_cache/9b5ad71b2ce5302211f9c61530b329a4922fc6a4 +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/llm/tiktoken_cache/fb374d419588a4632f3f557e76b4b70aebbca790 +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/llm/token_usage_es_service.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/llm/token_usage_mysql_service.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/llm/token_utils.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/llm/usage_token.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/logging/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/logging/async_sql_logger.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/logging/kafka_log.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/logging/log_masker.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/logging/logger_levels.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/logging/logger_wrapper.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/logging/process_logger.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/logging/sql_logger.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/mcp_server/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/mcp_server/server.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/middleware/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/middleware/context.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/middleware/cors.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/middleware/docs.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/middleware/exception.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/middleware/middleware.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/middleware/monitor_memory.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/middleware/mq.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/middleware/timeout.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/middleware/token_tracking.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/middleware/tool_result_truncation.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/middleware/traceid.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/models/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/models/base_http.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/models/log.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/models/mcp_server_config.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/models/mqlistener_config.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/models/mqmsg_model.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/models/mqsend_config.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/models/sandbox.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/models/sso_user.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/models/token_usage.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/models/token_usage_mysql.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/models/xxljob_handler_config.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/notice/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/notice/uvicorn_monitor.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/notice/wecom_message.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/rabbitmq/process_pool_consumer.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/rabbitmq/rabbitmq_client.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/rabbitmq/rabbitmq_pool.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/rabbitmq/rabbitmq_service.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/rabbitmq/rabbitmq_service_client_manager.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/rabbitmq/rabbitmq_service_connection_monitor.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/rabbitmq/rabbitmq_service_consumer_manager.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/rabbitmq/rabbitmq_service_core.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/rabbitmq/rabbitmq_service_producer_manager.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/sentry/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/sentry/sy_sentry.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/services.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/sse/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/sse/event.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/sse/sse.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/synacos/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/synacos/example.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/synacos/example2.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/synacos/feign.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/synacos/feign_client.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/synacos/nacos_client_base.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/synacos/nacos_config_manager.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/synacos/nacos_heartbeat_manager.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/synacos/nacos_service.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/synacos/nacos_service_discovery.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/synacos/nacos_service_registration.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/synacos/param.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/tests/deep_agent_server.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/tests/test_consistent_hash.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/tests/test_consume_dedup.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/tests/test_consumer_loss_rootcause.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/tests/test_consumer_recovery.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/tests/test_consumer_recovery_fix.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/tests/test_consumer_tags_sync.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/tests/test_deep_agent.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/tests/test_dynamic_max_tokens.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/tests/test_email.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/tests/test_encoding_cache.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/tests/test_exp_concurrent_migrate.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/tests/test_exp_delete_queue_with_consumers.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/tests/test_fault_injection_real.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/tests/test_fix_verification.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/tests/test_heartbeat_timeout.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/tests/test_integration_real_broker.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/tests/test_mcp_server.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/tests/test_minimax_reasoning.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/tests/test_mq.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/tests/test_mq_config_driven.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/tests/test_oa_login.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/tests/test_queue_priority_fallback.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/tests/test_queue_priority_upgrade_timing.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/tests/test_real_summarization.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/tests/test_reconnect_scenarios.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/tests/test_summarization_config.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/tests/test_summarization_real.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/tests/test_summary_leak_e2e.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/tests/test_upgrade_aio_pika.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/tests/test_upgrade_langgraph_stream.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/tests/test_upgrade_verification.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/tools/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/tools/async_utils.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/tools/docs.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/tools/env.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/tools/merge_headers.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/tools/snowflake.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/tools/syemail.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/tools/timing.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/xxljob/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/xxljob/xxljob_service.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon_python_lib.egg-info/SOURCES.txt +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon_python_lib.egg-info/dependency_links.txt +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon_python_lib.egg-info/entry_points.txt +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon_python_lib.egg-info/requires.txt +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon_python_lib.egg-info/top_level.txt +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/tests/test_acp_tool.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/tests/test_asyncio_logging.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/tests/test_config_change_notifier.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/tests/test_hotreload_snapshot.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/tests/test_llm_apikey_contextvar.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/tests/test_log_masker.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/tests/test_resilient_pg_saver.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/tests/test_sandbox_path_guard.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/tests/test_sensitive_guard.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/tests/test_simple_chat_agent.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/tests/test_skill_regex_upgrade.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/tests/test_skill_write_guard.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/tests/test_sycli.py +0 -0
- {sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/tests/test_sync_skills_to_sandbox.py +0 -0
|
@@ -1,67 +1,67 @@
|
|
|
1
|
-
[project]
|
|
2
|
-
name = "sycommon-python-lib"
|
|
3
|
-
version = "0.2.
|
|
4
|
-
description = "Add your description here"
|
|
5
|
-
readme = "README.md"
|
|
6
|
-
requires-python = ">=3.11"
|
|
7
|
-
dependencies = [
|
|
8
|
-
"aio-pika==10.0.1",
|
|
9
|
-
"aiohttp==3.14.3",
|
|
10
|
-
"aiomysql==0.3.2",
|
|
11
|
-
"anyio==4.14.2",
|
|
12
|
-
"decorator==5.3.1",
|
|
13
|
-
"deepagents==0.7.1",
|
|
14
|
-
"elasticsearch==9.4.1",
|
|
15
|
-
"fastapi==0.141.1",
|
|
16
|
-
"jinja2==3.1.6",
|
|
17
|
-
"kafka-python==3.0.9",
|
|
18
|
-
"langchain==1.3.14",
|
|
19
|
-
"langchain-core==1.5.3",
|
|
20
|
-
"langchain-openai==1.4.1",
|
|
21
|
-
"langfuse==4.14.2",
|
|
22
|
-
"langgraph==1.2.10",
|
|
23
|
-
"langgraph-checkpoint-postgres==3.1.1",
|
|
24
|
-
"langgraph-checkpoint-redis==0.5.1",
|
|
25
|
-
"ldap3==2.9.1",
|
|
26
|
-
"loguru==0.7.3",
|
|
27
|
-
"mysql-connector-python==26.7.0",
|
|
28
|
-
"nacos-sdk-python==2.0.11,<3.0",
|
|
29
|
-
"psutil==7.2.2",
|
|
30
|
-
"pyxxl==0.4.8",
|
|
31
|
-
"pydantic==2.13.4",
|
|
32
|
-
"python-dotenv==1.2.2",
|
|
33
|
-
"python-multipart==0.0.32",
|
|
34
|
-
"pyyaml==6.0.3",
|
|
35
|
-
"redis==7.4.0",
|
|
36
|
-
"sentry-sdk[fastapi]==2.66.1",
|
|
37
|
-
"sqlalchemy[asyncio]==2.0.51",
|
|
38
|
-
"starlette[full]==1.3.1",
|
|
39
|
-
"tiktoken==0.13.0",
|
|
40
|
-
"uvicorn==0.52.1",
|
|
41
|
-
"wecom-aibot-python-sdk==1.0.2",
|
|
42
|
-
"twine==7.0.0",
|
|
43
|
-
"minio==7.2.20",
|
|
44
|
-
"langchain-mcp-adapters==0.3.1",
|
|
45
|
-
"fastapi-mcp==0.4.0",
|
|
46
|
-
"psycopg[binary,pool]==3.3.4",
|
|
47
|
-
"agent-client-protocol==0.12.0",
|
|
48
|
-
"pypinyin==0.55.0",
|
|
49
|
-
]
|
|
50
|
-
|
|
51
|
-
[tool.setuptools]
|
|
52
|
-
packages = {find = {where = ["src"], exclude = ["*.__pycache__", "*.__pycache__.*"]}}
|
|
53
|
-
package-data = {command = ["templates/**/*", "templates/**/.*"], sycommon = ["llm/tiktoken_cache/*"]}
|
|
54
|
-
|
|
55
|
-
[build-system]
|
|
56
|
-
requires = ["setuptools"]
|
|
57
|
-
build-backend = "setuptools.build_meta"
|
|
58
|
-
|
|
59
|
-
[dependency-groups]
|
|
60
|
-
dev = [
|
|
61
|
-
"pytest>=9.0.3",
|
|
62
|
-
]
|
|
63
|
-
|
|
64
|
-
[project.scripts]
|
|
65
|
-
sycommon = "command.cli:main"
|
|
66
|
-
sycli = "sycli.cli:main"
|
|
67
|
-
sypublish = "nexus:main"
|
|
1
|
+
[project]
|
|
2
|
+
name = "sycommon-python-lib"
|
|
3
|
+
version = "0.2.7a54"
|
|
4
|
+
description = "Add your description here"
|
|
5
|
+
readme = "README.md"
|
|
6
|
+
requires-python = ">=3.11"
|
|
7
|
+
dependencies = [
|
|
8
|
+
"aio-pika==10.0.1",
|
|
9
|
+
"aiohttp==3.14.3",
|
|
10
|
+
"aiomysql==0.3.2",
|
|
11
|
+
"anyio==4.14.2",
|
|
12
|
+
"decorator==5.3.1",
|
|
13
|
+
"deepagents==0.7.1",
|
|
14
|
+
"elasticsearch==9.4.1",
|
|
15
|
+
"fastapi==0.141.1",
|
|
16
|
+
"jinja2==3.1.6",
|
|
17
|
+
"kafka-python==3.0.9",
|
|
18
|
+
"langchain==1.3.14",
|
|
19
|
+
"langchain-core==1.5.3",
|
|
20
|
+
"langchain-openai==1.4.1",
|
|
21
|
+
"langfuse==4.14.2",
|
|
22
|
+
"langgraph==1.2.10",
|
|
23
|
+
"langgraph-checkpoint-postgres==3.1.1",
|
|
24
|
+
"langgraph-checkpoint-redis==0.5.1",
|
|
25
|
+
"ldap3==2.9.1",
|
|
26
|
+
"loguru==0.7.3",
|
|
27
|
+
"mysql-connector-python==26.7.0",
|
|
28
|
+
"nacos-sdk-python==2.0.11,<3.0",
|
|
29
|
+
"psutil==7.2.2",
|
|
30
|
+
"pyxxl==0.4.8",
|
|
31
|
+
"pydantic==2.13.4",
|
|
32
|
+
"python-dotenv==1.2.2",
|
|
33
|
+
"python-multipart==0.0.32",
|
|
34
|
+
"pyyaml==6.0.3",
|
|
35
|
+
"redis==7.4.0",
|
|
36
|
+
"sentry-sdk[fastapi]==2.66.1",
|
|
37
|
+
"sqlalchemy[asyncio]==2.0.51",
|
|
38
|
+
"starlette[full]==1.3.1",
|
|
39
|
+
"tiktoken==0.13.0",
|
|
40
|
+
"uvicorn==0.52.1",
|
|
41
|
+
"wecom-aibot-python-sdk==1.0.2",
|
|
42
|
+
"twine==7.0.0",
|
|
43
|
+
"minio==7.2.20",
|
|
44
|
+
"langchain-mcp-adapters==0.3.1",
|
|
45
|
+
"fastapi-mcp==0.4.0",
|
|
46
|
+
"psycopg[binary,pool]==3.3.4",
|
|
47
|
+
"agent-client-protocol==0.12.0",
|
|
48
|
+
"pypinyin==0.55.0",
|
|
49
|
+
]
|
|
50
|
+
|
|
51
|
+
[tool.setuptools]
|
|
52
|
+
packages = {find = {where = ["src"], exclude = ["*.__pycache__", "*.__pycache__.*"]}}
|
|
53
|
+
package-data = {command = ["templates/**/*", "templates/**/.*"], sycommon = ["llm/tiktoken_cache/*"]}
|
|
54
|
+
|
|
55
|
+
[build-system]
|
|
56
|
+
requires = ["setuptools"]
|
|
57
|
+
build-backend = "setuptools.build_meta"
|
|
58
|
+
|
|
59
|
+
[dependency-groups]
|
|
60
|
+
dev = [
|
|
61
|
+
"pytest>=9.0.3",
|
|
62
|
+
]
|
|
63
|
+
|
|
64
|
+
[project.scripts]
|
|
65
|
+
sycommon = "command.cli:main"
|
|
66
|
+
sycli = "sycli.cli:main"
|
|
67
|
+
sypublish = "nexus:main"
|
{sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycommon/middleware/sandbox.py
RENAMED
|
@@ -108,6 +108,45 @@ _PIP_TMP_MIN_AGE_SECONDS = 10 * 60
|
|
|
108
108
|
# 不再用周期 60s 轮询——启动 + 对话结束两个事件已覆盖所有产生时机。
|
|
109
109
|
|
|
110
110
|
|
|
111
|
+
# ============== 流式上传并发限流 ==============
|
|
112
|
+
# 两层信号量:全局封顶防多用户同时上传打爆服务端线程池/IO;per-user 限流防
|
|
113
|
+
# 单用户独占全局额度。超出额度的请求在信号量上排队(asyncio.Semaphore 是 FIFO
|
|
114
|
+
# 公平等待,不会饿死),不是直接拒绝。
|
|
115
|
+
#
|
|
116
|
+
# 配置走环境变量(默认值:全局 50 / 单用户 3):
|
|
117
|
+
# SANDBOX_UPLOAD_GLOBAL_MAX — 全局并发上传上限
|
|
118
|
+
# SANDBOX_UPLOAD_PER_USER — 单用户并发上传上限
|
|
119
|
+
#
|
|
120
|
+
# 🔑 多 worker 注意:每个 worker 进程各自独立计数(进程级信号量,非跨进程共享)。
|
|
121
|
+
# 实际全局上限 ≈ workers × SANDBOX_UPLOAD_GLOBAL_MAX。沙箱按 user_id 哈希到固定
|
|
122
|
+
# worker(load_balance),故单用户的真实上限仍是 SANDBOX_UPLOAD_PER_USER,不受多 worker 影响。
|
|
123
|
+
_UPLOAD_GLOBAL_MAX = int(os.environ.get("SANDBOX_UPLOAD_GLOBAL_MAX", 50))
|
|
124
|
+
_UPLOAD_PER_USER = int(os.environ.get("SANDBOX_UPLOAD_PER_USER", 3))
|
|
125
|
+
|
|
126
|
+
# 全局信号量:惰性创建(绑定首次调用时的 event loop;单 loop 部署下不变)。
|
|
127
|
+
# 模块顶层直接 asyncio.Semaphore() 在某些导入时机(无 running loop)会报错,故延迟。
|
|
128
|
+
_upload_global_sem: "asyncio.Semaphore | None" = None
|
|
129
|
+
# per-user 信号量缓存:user_id -> Semaphore。不同用户独立计数、互不抢占。
|
|
130
|
+
_upload_user_sems: "Dict[str, asyncio.Semaphore]" = {}
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
def _get_upload_global_sem() -> "asyncio.Semaphore":
|
|
134
|
+
"""惰性创建全局上传信号量。"""
|
|
135
|
+
global _upload_global_sem
|
|
136
|
+
if _upload_global_sem is None:
|
|
137
|
+
_upload_global_sem = asyncio.Semaphore(_UPLOAD_GLOBAL_MAX)
|
|
138
|
+
return _upload_global_sem
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
def _get_upload_user_sem(user_id: str) -> "asyncio.Semaphore":
|
|
142
|
+
"""惰性创建/取回某用户的上传信号量。不存在则新建(不会回收,user_id 域有限,可忽略)。"""
|
|
143
|
+
sem = _upload_user_sems.get(user_id)
|
|
144
|
+
if sem is None:
|
|
145
|
+
sem = asyncio.Semaphore(_UPLOAD_PER_USER)
|
|
146
|
+
_upload_user_sems[user_id] = sem
|
|
147
|
+
return sem
|
|
148
|
+
|
|
149
|
+
|
|
111
150
|
async def _cleanup_finished_processes():
|
|
112
151
|
"""周期清理已完成的过期后台进程记录(仅进程记录,不含 pip tmp)。
|
|
113
152
|
|
|
@@ -1394,75 +1433,95 @@ def setup_sandbox_handler(app: FastAPI, config: dict = None):
|
|
|
1394
1433
|
支持任意大小文件。元数据(path/user_id/size)走 query 参数,不进 body——
|
|
1395
1434
|
避免框架/中间件预缓冲 JSON body 重新引入 OOM(对齐 /download/stream 的反向思路)。
|
|
1396
1435
|
错误用 HTTP 状态码 + JSON body 表达:400 路径非法 / 500 写入或长度不符。
|
|
1436
|
+
|
|
1437
|
+
并发限流:两层 asyncio.Semaphore(全局 _UPLOAD_GLOBAL_MAX / 单用户
|
|
1438
|
+
_UPLOAD_PER_USER)。超出额度的请求在此排队等待,不拒绝。先抢全局额度、
|
|
1439
|
+
再抢本用户额度,释放顺序相反,避免全局额度被等待用户额度的请求空占。
|
|
1397
1440
|
"""
|
|
1398
|
-
|
|
1441
|
+
# 并发限流在路径校验之前:让超额请求尽早排队,而非先做路径解析再排队。
|
|
1442
|
+
# (路径非法的请求量极小,不值得为此打乱限流顺序。)
|
|
1443
|
+
global_sem = _get_upload_global_sem()
|
|
1444
|
+
user_sem = _get_upload_user_sem(user_id)
|
|
1445
|
+
await global_sem.acquire()
|
|
1399
1446
|
try:
|
|
1400
|
-
|
|
1401
|
-
except
|
|
1402
|
-
|
|
1403
|
-
|
|
1447
|
+
await user_sem.acquire()
|
|
1448
|
+
except BaseException:
|
|
1449
|
+
# acquire user_sem 失败(如被取消)必须先放全局额度,避免泄漏。
|
|
1450
|
+
global_sem.release()
|
|
1451
|
+
raise
|
|
1452
|
+
try:
|
|
1453
|
+
workspace = await aget_user_workspace(user_id)
|
|
1454
|
+
try:
|
|
1455
|
+
file_path = resolve_sandbox_path(path, workspace)
|
|
1456
|
+
except ValueError as e:
|
|
1457
|
+
SYLogger.warning(f"[Sandbox Server] upload/stream 路径非法: {e}")
|
|
1458
|
+
return JSONResponse(status_code=400, content={"error": str(e)})
|
|
1404
1459
|
|
|
1405
|
-
|
|
1406
|
-
|
|
1460
|
+
# 预建父目录(磁盘 IO 不阻塞事件循环)
|
|
1461
|
+
parent = os.path.dirname(file_path)
|
|
1407
1462
|
|
|
1408
|
-
|
|
1409
|
-
|
|
1410
|
-
|
|
1411
|
-
|
|
1412
|
-
|
|
1413
|
-
|
|
1414
|
-
|
|
1415
|
-
|
|
1463
|
+
def _prepare():
|
|
1464
|
+
if parent:
|
|
1465
|
+
os.makedirs(parent, exist_ok=True)
|
|
1466
|
+
try:
|
|
1467
|
+
await asyncio.to_thread(_prepare)
|
|
1468
|
+
except OSError as e:
|
|
1469
|
+
SYLogger.error(f"[Sandbox Server] upload/stream 建目录失败: {e}")
|
|
1470
|
+
return JSONResponse(status_code=500, content={"error": str(e)})
|
|
1416
1471
|
|
|
1417
|
-
|
|
1418
|
-
|
|
1419
|
-
|
|
1472
|
+
loop = asyncio.get_event_loop()
|
|
1473
|
+
# O_NOFOLLOW 防 symlink 写劫持(对齐 /upload、/batch_upload)。
|
|
1474
|
+
flags = os.O_WRONLY | os.O_CREAT | os.O_TRUNC | getattr(os, "O_NOFOLLOW", 0)
|
|
1420
1475
|
|
|
1421
|
-
f = None
|
|
1422
|
-
written = 0
|
|
1423
|
-
try:
|
|
1424
|
-
# os.fdopen(fd, 'wb'):二进制模式(Windows 不做 \n→\r\n 翻译),
|
|
1425
|
-
# 内部按缓冲写盘并消化 partial write,比裸 os.write 更稳(对齐 /upload)。
|
|
1426
|
-
fd = await loop.run_in_executor(None, os.open, file_path, flags, 0o644)
|
|
1427
|
-
f = await loop.run_in_executor(None, os.fdopen, fd, 'wb')
|
|
1428
|
-
async for chunk in request.stream():
|
|
1429
|
-
if not chunk:
|
|
1430
|
-
continue
|
|
1431
|
-
await loop.run_in_executor(None, f.write, chunk)
|
|
1432
|
-
written += len(chunk)
|
|
1433
|
-
await loop.run_in_executor(None, f.close)
|
|
1434
1476
|
f = None
|
|
1435
|
-
|
|
1436
|
-
|
|
1437
|
-
|
|
1438
|
-
|
|
1439
|
-
|
|
1477
|
+
written = 0
|
|
1478
|
+
try:
|
|
1479
|
+
# os.fdopen(fd, 'wb'):二进制模式(Windows 不做 \n→\r\n 翻译),
|
|
1480
|
+
# 内部按缓冲写盘并消化 partial write,比裸 os.write 更稳(对齐 /upload)。
|
|
1481
|
+
fd = await loop.run_in_executor(None, os.open, file_path, flags, 0o644)
|
|
1482
|
+
f = await loop.run_in_executor(None, os.fdopen, fd, 'wb')
|
|
1483
|
+
async for chunk in request.stream():
|
|
1484
|
+
if not chunk:
|
|
1485
|
+
continue
|
|
1486
|
+
await loop.run_in_executor(None, f.write, chunk)
|
|
1487
|
+
written += len(chunk)
|
|
1488
|
+
await loop.run_in_executor(None, f.close)
|
|
1489
|
+
f = None
|
|
1490
|
+
except Exception as e:
|
|
1491
|
+
# 客户端中途断连 / 写盘失败:关句柄 + 清理半成品文件(对齐 download_stream 的 finally 清理)
|
|
1492
|
+
SYLogger.error(
|
|
1493
|
+
f"[Sandbox Server] upload/stream 写入异常: {file_path} - {type(e).__name__}: {e}")
|
|
1494
|
+
if f is not None:
|
|
1495
|
+
try:
|
|
1496
|
+
await loop.run_in_executor(None, f.close)
|
|
1497
|
+
except OSError:
|
|
1498
|
+
pass
|
|
1440
1499
|
try:
|
|
1441
|
-
await loop.run_in_executor(None,
|
|
1500
|
+
await loop.run_in_executor(None, os.unlink, file_path)
|
|
1442
1501
|
except OSError:
|
|
1443
1502
|
pass
|
|
1444
|
-
|
|
1445
|
-
await loop.run_in_executor(None, os.unlink, file_path)
|
|
1446
|
-
except OSError:
|
|
1447
|
-
pass
|
|
1448
|
-
return JSONResponse(status_code=500, content={"error": str(e)})
|
|
1503
|
+
return JSONResponse(status_code=500, content={"error": str(e)})
|
|
1449
1504
|
|
|
1450
|
-
|
|
1451
|
-
|
|
1452
|
-
|
|
1453
|
-
|
|
1454
|
-
|
|
1455
|
-
|
|
1456
|
-
|
|
1457
|
-
|
|
1458
|
-
|
|
1459
|
-
|
|
1460
|
-
|
|
1461
|
-
|
|
1505
|
+
# size 给定时校验长度(防客户端截断后留下残缺文件)
|
|
1506
|
+
if size is not None and written != size:
|
|
1507
|
+
SYLogger.warning(
|
|
1508
|
+
f"[Sandbox Server] upload/stream 长度不符: {file_path} "
|
|
1509
|
+
f"written={written} expected={size},清理半成品")
|
|
1510
|
+
try:
|
|
1511
|
+
await loop.run_in_executor(None, os.unlink, file_path)
|
|
1512
|
+
except OSError:
|
|
1513
|
+
pass
|
|
1514
|
+
return JSONResponse(
|
|
1515
|
+
status_code=500,
|
|
1516
|
+
content={"error": f"size mismatch: written={written} expected={size}"})
|
|
1462
1517
|
|
|
1463
|
-
|
|
1464
|
-
|
|
1465
|
-
|
|
1518
|
+
SYLogger.info(
|
|
1519
|
+
f"[Sandbox Server] upload/stream 完成: {file_path} (user={user_id}, size={written})")
|
|
1520
|
+
return {"path": path, "size": written}
|
|
1521
|
+
finally:
|
|
1522
|
+
# 释放顺序:先放用户额度,再放全局额度(与获取相反,避免全局额度空占)
|
|
1523
|
+
user_sem.release()
|
|
1524
|
+
global_sem.release()
|
|
1466
1525
|
|
|
1467
1526
|
@sandbox_router.post("/tree", response_model=TreeResponse)
|
|
1468
1527
|
async def tree_dir(req: TreeRequest):
|
|
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.7a53 → sycommon_python_lib-0.2.7a54}/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.7a53 → sycommon_python_lib-0.2.7a54}/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.7a53 → sycommon_python_lib-0.2.7a54}/src/command/templates/base/.env.tpl
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/command/templates/base/__init__.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/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.7a53 → sycommon_python_lib-0.2.7a54}/src/command/templates/cli/__init__.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/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.7a53 → sycommon_python_lib-0.2.7a54}/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.7a53 → sycommon_python_lib-0.2.7a54}/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.7a53 → sycommon_python_lib-0.2.7a54}/src/sycli/cdp/capabilities/__init__.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycli/cdp/capabilities/console.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycli/cdp/capabilities/dom.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/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.7a53 → sycommon_python_lib-0.2.7a54}/src/sycli/commands/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycli/commands/chat_cmd.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycli/commands/create_cmd.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycli/commands/evaluate_cmd.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycli/commands/init_cmd.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycli/commands/memory_cmd.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycli/commands/resume_cmd.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.7a53 → sycommon_python_lib-0.2.7a54}/src/sycli/commands/rollback_cmd.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|