sycommon-python-lib 0.2.5a12__tar.gz → 0.2.5a13__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.5a12 → sycommon_python_lib-0.2.5a13}/PKG-INFO +1 -1
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/pyproject.toml +1 -1
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/agent/deep_agent.py +2 -11
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/agent/multi_agent_team.py +2 -45
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/agent/sandbox/http_sandbox_backend.py +3 -125
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/middleware/sandbox.py +9 -515
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon_python_lib.egg-info/PKG-INFO +1 -1
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon_python_lib.egg-info/SOURCES.txt +0 -1
- sycommon_python_lib-0.2.5a12/src/sycommon/middleware/background_execution.py +0 -568
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/README.md +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/setup.cfg +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/command/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/command/cli.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/command/core/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/command/core/console.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/command/core/models.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/command/core/project.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/command/core/utils.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/command/templates/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/command/templates/agent/README.md.tpl +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/command/templates/agent/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/command/templates/agent/agent/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/command/templates/agent/agent/main_agent.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/command/templates/agent/agent/nodes/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/command/templates/agent/agent/nodes/example_node.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/command/templates/agent/agent/states/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/command/templates/agent/agent/states/agent_state.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/command/templates/agent/api/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/command/templates/agent/api/query.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/command/templates/agent/api/sse/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/command/templates/agent/api/sse/agent.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/command/templates/agent/app.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/command/templates/agent/client/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/command/templates/agent/db/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/command/templates/agent/db/model/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/command/templates/agent/db/model/entity.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/command/templates/agent/db/service.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/command/templates/agent/model/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/command/templates/agent/model/parse.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/command/templates/agent/tools/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/command/templates/agent/tools/mq.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/command/templates/base/.env.tpl +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/command/templates/base/.gitignore.tpl +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/command/templates/base/Dockerfile.tpl +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/command/templates/base/README.md.tpl +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/command/templates/base/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/command/templates/base/app.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/command/templates/base/app.yaml.tpl +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/command/templates/base/client/FileServiceClient.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/command/templates/base/client/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/command/templates/base/model/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/command/templates/base/model/file_info.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/command/templates/base/requirements.txt.tpl +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/command/templates/cli/README.md.tpl +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/command/templates/cli/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/command/templates/cli/app.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/command/templates/cli/commands/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/command/templates/cli/commands/hello.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/command/templates/cli/pyproject.toml.tpl +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/command/templates/cli/tools/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/command/templates/web/README.md.tpl +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/command/templates/web/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/command/templates/web/api/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/command/templates/web/api/echo.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/command/templates/web/api/sse/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/command/templates/web/api/sse/echo.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/command/templates/web/app.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/command/templates/web/client/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/command/templates/web/model/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/command/templates/web/tools/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/command/templates/web/tools/mq.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/nexus/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycli/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycli/__main__.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycli/agents/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycli/agents/factory.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycli/agents/prompts.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycli/cdp/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycli/cdp/browser.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycli/cdp/capabilities/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycli/cdp/capabilities/console.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycli/cdp/capabilities/dom.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycli/cdp/capabilities/network.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycli/cdp/capabilities/page_errors.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycli/cdp/capabilities/performance.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycli/cdp/capabilities/screenshot.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycli/cdp/client.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycli/cdp/protocol.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycli/cdp/repl.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycli/cli.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycli/commands/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycli/commands/cdp_cmd.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycli/commands/chat_cmd.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycli/commands/create_cmd.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycli/commands/evaluate_cmd.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycli/commands/init_cmd.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycli/commands/memory_cmd.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycli/commands/resume_cmd.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycli/commands/rollback_cmd.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycli/commands/run_cmd.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycli/core/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycli/core/backend.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycli/core/config.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycli/core/display.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycli/core/git_integration.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycli/core/llm.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycli/core/state.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycli/evaluate/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycli/evaluate/api_evaluator.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycli/memory/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycli/memory/compressor.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycli/memory/full.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycli/memory/hot.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycli/memory/manager.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycli/memory/warm.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycli/mode/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycli/mode/create.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycli/mode/optimize.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycli/models/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycli/models/config_models.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycli/rl/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycli/rl/baseline_tests.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycli/rl/checkpoint.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycli/rl/convergence.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycli/rl/diagnosis.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycli/rl/engine.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycli/rl/environment.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycli/rl/experience.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycli/rl/harness_prompts.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycli/rl/history.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycli/rl/optimization_logger.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycli/rl/pre_validation.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycli/rl/reward.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycli/rl/strategy_bandit.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycli/rl/strategy_generator.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycli/rl/strategy_prompts.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycli/skills/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/agent/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/agent/agent_manager.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/agent/chat_events.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/agent/mcp/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/agent/mcp/models.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/agent/mcp/tool_loader.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/agent/sandbox/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/agent/sandbox/file_ops.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/agent/sandbox/minio_sync.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/agent/sandbox/sandbox_pool.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/agent/sandbox/sandbox_recovery.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/agent/sandbox/session.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/agent/summarization_utils.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/auth/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/auth/ldap_service.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/auth/oa_cache.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/auth/oa_crypto.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/auth/oa_service.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/auth/wecom_ldap_service.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/config/Config.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/config/DatabaseConfig.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/config/ElasticsearchConfig.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/config/EmbeddingConfig.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/config/LLMConfig.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/config/LangfuseConfig.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/config/MQConfig.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/config/PgConfig.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/config/RedisConfig.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/config/RerankerConfig.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/config/SentryConfig.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/config/XxlJobConfig.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/config/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/database/async_base_db_service.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/database/async_database_service.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/database/base_db_service.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/database/database_service.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/database/elasticsearch_service.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/database/pg_checkpoint_service.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/database/redis_service.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/database/token_usage_db_service.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/health/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/health/health_check.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/health/metrics.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/health/ping.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/heartbeat_process/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/heartbeat_process/heartbeat_config.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/heartbeat_process/heartbeat_process_manager.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/heartbeat_process/heartbeat_process_worker.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/llm/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/llm/embedding.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/llm/get_llm.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/llm/llm_logger.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/llm/llm_tokens.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/llm/llm_with_token_tracking.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/llm/native_with_fallback_runnable.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/llm/output_fixing_runnable.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/llm/struct_token.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/llm/sy_langfuse.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/llm/tiktoken_cache/9b5ad71b2ce5302211f9c61530b329a4922fc6a4 +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/llm/tiktoken_cache/fb374d419588a4632f3f557e76b4b70aebbca790 +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/llm/token_usage_es_service.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/llm/token_usage_mysql_service.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/llm/usage_token.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/logging/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/logging/async_sql_logger.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/logging/kafka_log.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/logging/logger_levels.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/logging/logger_wrapper.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/logging/process_logger.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/logging/sql_logger.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/mcp_server/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/mcp_server/server.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/middleware/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/middleware/context.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/middleware/cors.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/middleware/docs.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/middleware/exception.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/middleware/middleware.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/middleware/monitor_memory.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/middleware/mq.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/middleware/timeout.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/middleware/token_tracking.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/middleware/tool_result_truncation.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/middleware/traceid.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/models/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/models/base_http.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/models/log.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/models/mcp_server_config.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/models/mqlistener_config.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/models/mqmsg_model.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/models/mqsend_config.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/models/sandbox.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/models/sso_user.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/models/token_usage.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/models/token_usage_mysql.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/models/xxljob_handler_config.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/notice/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/notice/uvicorn_monitor.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/notice/wecom_message.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/rabbitmq/process_pool_consumer.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/rabbitmq/rabbitmq_client.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/rabbitmq/rabbitmq_pool.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/rabbitmq/rabbitmq_service.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/rabbitmq/rabbitmq_service_client_manager.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/rabbitmq/rabbitmq_service_connection_monitor.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/rabbitmq/rabbitmq_service_consumer_manager.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/rabbitmq/rabbitmq_service_core.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/rabbitmq/rabbitmq_service_producer_manager.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/sentry/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/sentry/sy_sentry.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/services.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/sse/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/sse/event.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/sse/sse.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/synacos/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/synacos/example.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/synacos/example2.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/synacos/feign.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/synacos/feign_client.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/synacos/nacos_client_base.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/synacos/nacos_config_manager.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/synacos/nacos_heartbeat_manager.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/synacos/nacos_service.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/synacos/nacos_service_discovery.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/synacos/nacos_service_registration.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/synacos/param.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/tests/deep_agent_server.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/tests/test_consumer_recovery.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/tests/test_deep_agent.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/tests/test_email.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/tests/test_encoding_cache.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/tests/test_mcp_server.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/tests/test_minimax_reasoning.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/tests/test_mq.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/tests/test_oa_login.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/tests/test_real_summarization.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/tests/test_summarization_config.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/tests/test_summarization_real.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/tools/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/tools/async_utils.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/tools/docs.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/tools/env.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/tools/merge_headers.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/tools/snowflake.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/tools/syemail.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/tools/timing.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/xxljob/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/xxljob/xxljob_service.py +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon_python_lib.egg-info/dependency_links.txt +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon_python_lib.egg-info/entry_points.txt +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon_python_lib.egg-info/requires.txt +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon_python_lib.egg-info/top_level.txt +0 -0
- {sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/tests/test_sycli.py +0 -0
{sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/agent/deep_agent.py
RENAMED
|
@@ -49,7 +49,6 @@ from sycommon.llm.get_llm import get_llm
|
|
|
49
49
|
from sycommon.agent.sandbox.http_sandbox_backend import HTTPSandboxBackend
|
|
50
50
|
from sycommon.agent.sandbox.sandbox_recovery import SandboxRecoveryManager
|
|
51
51
|
from sycommon.agent.chat_events import ChatEvent, ChatEventBuilder, DEFAULT_AGENT_NAME
|
|
52
|
-
from sycommon.middleware.background_execution import BackgroundExecutionMiddleware
|
|
53
52
|
from sycommon.middleware.token_tracking import TokenTrackingMiddleware
|
|
54
53
|
from sycommon.middleware.tool_result_truncation import ToolResultTruncationMiddleware
|
|
55
54
|
from deepagents.middleware.summarization import create_summarization_tool_middleware # noqa: F401 保留 re-export
|
|
@@ -118,9 +117,6 @@ class AgentConfig(BaseModel):
|
|
|
118
117
|
# 调试模式
|
|
119
118
|
debug: bool = False
|
|
120
119
|
|
|
121
|
-
# 后台执行超时(秒)
|
|
122
|
-
background_timeout: int = 600
|
|
123
|
-
|
|
124
120
|
class Config:
|
|
125
121
|
arbitrary_types_allowed = True
|
|
126
122
|
|
|
@@ -143,12 +139,8 @@ class DeepAgent:
|
|
|
143
139
|
self.recovery_manager = recovery_manager
|
|
144
140
|
|
|
145
141
|
async def cleanup(self):
|
|
146
|
-
"""
|
|
147
|
-
|
|
148
|
-
try:
|
|
149
|
-
await self.sandbox_backend.akill_all_processes()
|
|
150
|
-
except Exception as e:
|
|
151
|
-
SYLogger.warning(f"[DeepAgent] 清理后台进程失败: {e}")
|
|
142
|
+
"""清理资源"""
|
|
143
|
+
pass
|
|
152
144
|
|
|
153
145
|
async def chat(
|
|
154
146
|
self,
|
|
@@ -653,7 +645,6 @@ async def create_deep_agent(
|
|
|
653
645
|
"system_prompt": config.system_prompt,
|
|
654
646
|
"debug": config.debug,
|
|
655
647
|
"middleware": [
|
|
656
|
-
BackgroundExecutionMiddleware(backend=sandbox_backend),
|
|
657
648
|
ToolResultTruncationMiddleware(),
|
|
658
649
|
TokenTrackingMiddleware(model_name=config.model_name, user_id=user_id),
|
|
659
650
|
summarization_mw,
|
{sycommon_python_lib-0.2.5a12 → sycommon_python_lib-0.2.5a13}/src/sycommon/agent/multi_agent_team.py
RENAMED
|
@@ -42,7 +42,6 @@ from sycommon.agent.sandbox.http_sandbox_backend import HTTPSandboxBackend
|
|
|
42
42
|
from sycommon.tools.env import get_env_var
|
|
43
43
|
from sycommon.agent.sandbox.sandbox_recovery import SandboxRecoveryManager
|
|
44
44
|
from sycommon.agent.chat_events import ChatEvent, ChatEventBuilder, DEFAULT_AGENT_NAME
|
|
45
|
-
from sycommon.middleware.background_execution import BackgroundExecutionMiddleware
|
|
46
45
|
from sycommon.middleware.token_tracking import TokenTrackingMiddleware
|
|
47
46
|
from sycommon.middleware.tool_result_truncation import ToolResultTruncationMiddleware
|
|
48
47
|
from deepagents.middleware.summarization import create_summarization_tool_middleware # noqa: F401 保留 re-export
|
|
@@ -109,42 +108,6 @@ class TeamMember(BaseModel):
|
|
|
109
108
|
- 认真完成分配给你的任务
|
|
110
109
|
- 与团队成员保持良好协作
|
|
111
110
|
- 用中文回答问题
|
|
112
|
-
|
|
113
|
-
## 重要约束 - 沙箱执行环境
|
|
114
|
-
|
|
115
|
-
### 后台执行工具
|
|
116
|
-
|
|
117
|
-
沙箱提供了专门的后台执行工具,用于管理长时间运行的服务:
|
|
118
|
-
|
|
119
|
-
- **execute_background(command, timeout=600)**: 在后台启动命令(不阻塞),返回 process_id
|
|
120
|
-
- **check_process(process_id)**: 检查后台进程的状态
|
|
121
|
-
- **kill_process(process_id)**: 终止后台进程
|
|
122
|
-
|
|
123
|
-
### 启动和测试服务的正确方式
|
|
124
|
-
|
|
125
|
-
当需要启动长时间运行的服务(如 FastAPI、数据库)时:
|
|
126
|
-
|
|
127
|
-
```python
|
|
128
|
-
# 1. 后台启动服务
|
|
129
|
-
result = execute_background(command="uvicorn main:app --host 0.0.0.0 --port 8000")
|
|
130
|
-
process_id = result["process_id"]
|
|
131
|
-
|
|
132
|
-
# 2. 等待服务启动
|
|
133
|
-
execute(command="sleep 3")
|
|
134
|
-
|
|
135
|
-
# 3. 测试服务
|
|
136
|
-
execute(command="curl http://localhost:8000/health")
|
|
137
|
-
|
|
138
|
-
# 4. 完成后终止服务(重要!)
|
|
139
|
-
kill_process(process_id=process_id)
|
|
140
|
-
```
|
|
141
|
-
|
|
142
|
-
### 关键规则
|
|
143
|
-
|
|
144
|
-
1. **启动服务必须使用 execute_background** - 使用 execute 启动服务会超时
|
|
145
|
-
2. **记住 process_id** - 每次启动服务都会返回新的 process_id,需要保存用于后续操作
|
|
146
|
-
3. **测试完成后必须 kill_process** - 避免资源浪费
|
|
147
|
-
4. **使用 check_process 检查状态** - 可以查看服务是否还在运行
|
|
148
111
|
"""
|
|
149
112
|
|
|
150
113
|
class Config:
|
|
@@ -228,12 +191,8 @@ class MultiAgentTeam:
|
|
|
228
191
|
self.recovery_manager = recovery_manager
|
|
229
192
|
|
|
230
193
|
async def cleanup(self):
|
|
231
|
-
"""
|
|
232
|
-
|
|
233
|
-
try:
|
|
234
|
-
await self.sandbox_backend.akill_all_processes()
|
|
235
|
-
except Exception as e:
|
|
236
|
-
SYLogger.warning(f"[MultiAgentTeam] 清理后台进程失败: {e}")
|
|
194
|
+
"""清理资源"""
|
|
195
|
+
pass
|
|
237
196
|
|
|
238
197
|
async def chat(
|
|
239
198
|
self,
|
|
@@ -590,7 +549,6 @@ async def create_multi_agent_team(
|
|
|
590
549
|
|
|
591
550
|
summarization_mw = build_summarization_middleware(model, config.model_name, sandbox_backend)
|
|
592
551
|
middleware = [
|
|
593
|
-
BackgroundExecutionMiddleware(backend=sandbox_backend),
|
|
594
552
|
ToolResultTruncationMiddleware(),
|
|
595
553
|
TokenTrackingMiddleware(model_name=config.model_name, user_id=user_id),
|
|
596
554
|
summarization_mw,
|
|
@@ -647,7 +605,6 @@ async def create_multi_agent_team(
|
|
|
647
605
|
debug=config.debug,
|
|
648
606
|
name=coord_name,
|
|
649
607
|
middleware=[
|
|
650
|
-
BackgroundExecutionMiddleware(backend=sandbox_backend),
|
|
651
608
|
ToolResultTruncationMiddleware(),
|
|
652
609
|
TokenTrackingMiddleware(model_name=config.model_name, user_id=user_id),
|
|
653
610
|
coord_summarization_mw,
|
|
@@ -90,6 +90,7 @@ class HTTPSandboxBackend(FileOperationsMixin, SandboxBackendProtocol):
|
|
|
90
90
|
auto_sync: bool = False,
|
|
91
91
|
nacos_service_name: str = None,
|
|
92
92
|
nacos_group: str = "DEFAULT_GROUP",
|
|
93
|
+
token: str = None,
|
|
93
94
|
):
|
|
94
95
|
"""
|
|
95
96
|
初始化 HTTP 沙箱后端
|
|
@@ -112,8 +113,8 @@ class HTTPSandboxBackend(FileOperationsMixin, SandboxBackendProtocol):
|
|
|
112
113
|
self._workspace_verified = False
|
|
113
114
|
self._local_mode: Optional[bool] = None
|
|
114
115
|
|
|
115
|
-
# Token authentication
|
|
116
|
-
self._token = os.environ.get("SANDBOX_TOKEN", "")
|
|
116
|
+
# Token authentication: instance-level > env var
|
|
117
|
+
self._token = token if token is not None else os.environ.get("SANDBOX_TOKEN", "")
|
|
117
118
|
|
|
118
119
|
# Nacos 配置(用于故障转移)
|
|
119
120
|
self._nacos_service_name = nacos_service_name
|
|
@@ -725,129 +726,6 @@ class HTTPSandboxBackend(FileOperationsMixin, SandboxBackendProtocol):
|
|
|
725
726
|
SYLogger.info(f"[Sandbox] _upload_directory_async 完成: 成功={success_count}, 失败={failed_count}")
|
|
726
727
|
return {"success": success_count, "failed": failed_count, "errors": errors}
|
|
727
728
|
|
|
728
|
-
# ============== 后台进程执行 ==============
|
|
729
|
-
|
|
730
|
-
def execute_background(self, command: str, *, timeout: int = 600) -> dict:
|
|
731
|
-
"""后台执行 shell 命令(不阻塞,立即返回 process_id)"""
|
|
732
|
-
self._ensure_synced_sync()
|
|
733
|
-
SYLogger.info(f"[Sandbox] 后台执行: {command}")
|
|
734
|
-
try:
|
|
735
|
-
result = self._post_sync(f"{SANDBOX_API_PREFIX}/execute_background", {
|
|
736
|
-
"command": command.strip(),
|
|
737
|
-
"user_id": self._user_id,
|
|
738
|
-
"timeout": timeout
|
|
739
|
-
})
|
|
740
|
-
SYLogger.info(f"[Sandbox] 后台进程已启动: process_id={result['process_id']}")
|
|
741
|
-
return result
|
|
742
|
-
except Exception as e:
|
|
743
|
-
SYLogger.error(f"[Sandbox] 后台执行失败: {e}")
|
|
744
|
-
return {"process_id": None, "status": "error", "error": str(e)}
|
|
745
|
-
|
|
746
|
-
async def aexecute_stream(self, command: str, *, timeout: int = None):
|
|
747
|
-
"""异步流式执行 shell 命令,yield SSE 事件字典
|
|
748
|
-
|
|
749
|
-
每个 yield 的格式: {"type": "output"|"done"|"error", "data": ..., "exit_code": ...}
|
|
750
|
-
"""
|
|
751
|
-
await self._ensure_synced_async()
|
|
752
|
-
actual_timeout = timeout if timeout is not None else self._timeout
|
|
753
|
-
url = f"{self._base_url}{SANDBOX_API_PREFIX}/execute_stream"
|
|
754
|
-
timeout_obj = aiohttp.ClientTimeout(total=actual_timeout + 60)
|
|
755
|
-
connector = aiohttp.TCPConnector(ssl=_SSL_CONTEXT)
|
|
756
|
-
async with aiohttp.ClientSession(connector=connector) as session:
|
|
757
|
-
async with session.post(url, json={
|
|
758
|
-
"command": command.strip(),
|
|
759
|
-
"user_id": self._user_id,
|
|
760
|
-
"timeout": actual_timeout
|
|
761
|
-
}, timeout=timeout_obj) as resp:
|
|
762
|
-
resp.raise_for_status()
|
|
763
|
-
buffer = ""
|
|
764
|
-
async for chunk in resp.content.iter_any():
|
|
765
|
-
buffer += chunk.decode('utf-8', errors='replace')
|
|
766
|
-
while "\n\n" in buffer:
|
|
767
|
-
event_str, buffer = buffer.split("\n\n", 1)
|
|
768
|
-
for line in event_str.strip().split("\n"):
|
|
769
|
-
if line.startswith("data: "):
|
|
770
|
-
import json
|
|
771
|
-
yield json.loads(line[6:])
|
|
772
|
-
|
|
773
|
-
async def aexecute_background(self, command: str, *, timeout: int = None) -> dict:
|
|
774
|
-
"""异步后台执行 shell 命令(服务端负责路径隔离)"""
|
|
775
|
-
await self._ensure_synced_async()
|
|
776
|
-
actual_timeout = timeout if timeout is not None else 600
|
|
777
|
-
SYLogger.info(f"[Sandbox] 异步后台执行: {command}")
|
|
778
|
-
try:
|
|
779
|
-
result = await self._post_async_with_failover(f"{SANDBOX_API_PREFIX}/execute_background", {
|
|
780
|
-
"command": command.strip(),
|
|
781
|
-
"user_id": self._user_id,
|
|
782
|
-
"timeout": actual_timeout
|
|
783
|
-
}, timeout=actual_timeout)
|
|
784
|
-
SYLogger.info(f"[Sandbox] 异步后台进程已启动: process_id={result['process_id']}")
|
|
785
|
-
return result
|
|
786
|
-
except Exception as e:
|
|
787
|
-
SYLogger.error(f"[Sandbox] 异步后台执行失败: {e}")
|
|
788
|
-
return {"process_id": None, "status": "error", "error": str(e)}
|
|
789
|
-
|
|
790
|
-
async def acheck_process(self, process_id: str, *, timeout: int = None) -> dict:
|
|
791
|
-
"""异步检查后台进程状态"""
|
|
792
|
-
try:
|
|
793
|
-
result = await self._post_async_with_failover(f"{SANDBOX_API_PREFIX}/process_status", {
|
|
794
|
-
"process_id": process_id,
|
|
795
|
-
"user_id": self._user_id
|
|
796
|
-
}, timeout=timeout)
|
|
797
|
-
return result
|
|
798
|
-
except Exception as e:
|
|
799
|
-
SYLogger.error(f"[Sandbox] 异步检查进程失败: {e}")
|
|
800
|
-
return {"process_id": process_id, "status": "error", "error": str(e)}
|
|
801
|
-
|
|
802
|
-
async def akill_process(self, process_id: str, *, timeout: int = None) -> dict:
|
|
803
|
-
"""异步终止后台进程"""
|
|
804
|
-
try:
|
|
805
|
-
result = await self._post_async_with_failover(f"{SANDBOX_API_PREFIX}/kill_process", {
|
|
806
|
-
"process_id": process_id,
|
|
807
|
-
"user_id": self._user_id
|
|
808
|
-
}, timeout=timeout)
|
|
809
|
-
SYLogger.info(f"[Sandbox] 异步进程终止: {process_id}, status={result['status']}")
|
|
810
|
-
return result
|
|
811
|
-
except Exception as e:
|
|
812
|
-
SYLogger.error(f"[Sandbox] 异步终止进程失败: {e}")
|
|
813
|
-
return {"process_id": process_id, "status": "error", "error": str(e)}
|
|
814
|
-
|
|
815
|
-
async def akill_all_processes(self, *, timeout: int = None) -> dict:
|
|
816
|
-
"""异步终止该用户的所有后台进程"""
|
|
817
|
-
try:
|
|
818
|
-
result = await self._post_async_with_failover(
|
|
819
|
-
f"{SANDBOX_API_PREFIX}/kill_all_processes",
|
|
820
|
-
{"user_id": self._user_id},
|
|
821
|
-
timeout=timeout,
|
|
822
|
-
)
|
|
823
|
-
SYLogger.info(
|
|
824
|
-
f"[Sandbox] 批量终止进程: "
|
|
825
|
-
f"killed={result.get('killed_count', 0)}, "
|
|
826
|
-
f"already_completed={result.get('already_completed', 0)}"
|
|
827
|
-
)
|
|
828
|
-
return result
|
|
829
|
-
except Exception as e:
|
|
830
|
-
SYLogger.error(f"[Sandbox] 批量终止进程失败: {e}")
|
|
831
|
-
return {"killed_count": 0, "error": str(e)}
|
|
832
|
-
|
|
833
|
-
# ============== 端口转发 ==============
|
|
834
|
-
|
|
835
|
-
async def aport_forward(self, port: int, action: str = "list", *, timeout: int = None) -> dict:
|
|
836
|
-
"""异步端口转发管理"""
|
|
837
|
-
return await self._post_async_with_failover(f"{SANDBOX_API_PREFIX}/port_forward", {
|
|
838
|
-
"port": port,
|
|
839
|
-
"user_id": self._user_id,
|
|
840
|
-
"action": action,
|
|
841
|
-
}, timeout=timeout)
|
|
842
|
-
|
|
843
|
-
async def awatch(self, path: str = "/", event_types: list = None, *, timeout: int = None) -> dict:
|
|
844
|
-
"""异步查询文件变更"""
|
|
845
|
-
return await self._post_async_with_failover(f"{SANDBOX_API_PREFIX}/watch", {
|
|
846
|
-
"path": path,
|
|
847
|
-
"user_id": self._user_id,
|
|
848
|
-
"event_types": event_types,
|
|
849
|
-
}, timeout=timeout)
|
|
850
|
-
|
|
851
729
|
# ============== 批量操作 ==============
|
|
852
730
|
|
|
853
731
|
def upload_files(self, files: List[tuple[str, bytes]]) -> List[FileUploadResponse]:
|