sycommon-python-lib 0.2.5a17__tar.gz → 0.2.5a19__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.5a17 → sycommon_python_lib-0.2.5a19}/PKG-INFO +1 -1
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/pyproject.toml +1 -1
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/agent/mcp/tool_loader.py +54 -38
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/agent/sandbox/http_sandbox_backend.py +40 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/database/pg_checkpoint_service.py +21 -1
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon_python_lib.egg-info/PKG-INFO +1 -1
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/README.md +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/setup.cfg +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/command/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/command/cli.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/command/core/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/command/core/console.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/command/core/models.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/command/core/project.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/command/core/utils.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/command/templates/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/command/templates/agent/README.md.tpl +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/command/templates/agent/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/command/templates/agent/agent/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/command/templates/agent/agent/main_agent.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/command/templates/agent/agent/nodes/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/command/templates/agent/agent/nodes/example_node.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/command/templates/agent/agent/states/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/command/templates/agent/agent/states/agent_state.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/command/templates/agent/api/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/command/templates/agent/api/query.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/command/templates/agent/api/sse/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/command/templates/agent/api/sse/agent.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/command/templates/agent/app.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/command/templates/agent/client/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/command/templates/agent/db/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/command/templates/agent/db/model/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/command/templates/agent/db/model/entity.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/command/templates/agent/db/service.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/command/templates/agent/model/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/command/templates/agent/model/parse.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/command/templates/agent/tools/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/command/templates/agent/tools/mq.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/command/templates/base/.env.tpl +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/command/templates/base/.gitignore.tpl +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/command/templates/base/Dockerfile.tpl +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/command/templates/base/README.md.tpl +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/command/templates/base/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/command/templates/base/app.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/command/templates/base/app.yaml.tpl +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/command/templates/base/client/FileServiceClient.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/command/templates/base/client/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/command/templates/base/model/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/command/templates/base/model/file_info.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/command/templates/base/requirements.txt.tpl +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/command/templates/cli/README.md.tpl +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/command/templates/cli/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/command/templates/cli/app.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/command/templates/cli/commands/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/command/templates/cli/commands/hello.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/command/templates/cli/pyproject.toml.tpl +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/command/templates/cli/tools/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/command/templates/web/README.md.tpl +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/command/templates/web/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/command/templates/web/api/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/command/templates/web/api/echo.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/command/templates/web/api/sse/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/command/templates/web/api/sse/echo.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/command/templates/web/app.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/command/templates/web/client/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/command/templates/web/model/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/command/templates/web/tools/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/command/templates/web/tools/mq.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/nexus/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycli/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycli/__main__.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycli/agents/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycli/agents/factory.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycli/agents/prompts.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycli/cdp/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycli/cdp/browser.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycli/cdp/capabilities/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycli/cdp/capabilities/console.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycli/cdp/capabilities/dom.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycli/cdp/capabilities/network.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycli/cdp/capabilities/page_errors.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycli/cdp/capabilities/performance.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycli/cdp/capabilities/screenshot.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycli/cdp/client.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycli/cdp/protocol.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycli/cdp/repl.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycli/cli.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycli/commands/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycli/commands/cdp_cmd.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycli/commands/chat_cmd.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycli/commands/create_cmd.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycli/commands/evaluate_cmd.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycli/commands/init_cmd.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycli/commands/memory_cmd.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycli/commands/resume_cmd.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycli/commands/rollback_cmd.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycli/commands/run_cmd.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycli/core/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycli/core/backend.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycli/core/config.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycli/core/display.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycli/core/git_integration.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycli/core/llm.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycli/core/state.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycli/evaluate/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycli/evaluate/api_evaluator.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycli/memory/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycli/memory/compressor.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycli/memory/full.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycli/memory/hot.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycli/memory/manager.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycli/memory/warm.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycli/mode/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycli/mode/create.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycli/mode/optimize.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycli/models/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycli/models/config_models.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycli/rl/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycli/rl/baseline_tests.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycli/rl/checkpoint.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycli/rl/convergence.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycli/rl/diagnosis.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycli/rl/engine.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycli/rl/environment.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycli/rl/experience.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycli/rl/harness_prompts.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycli/rl/history.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycli/rl/optimization_logger.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycli/rl/pre_validation.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycli/rl/reward.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycli/rl/strategy_bandit.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycli/rl/strategy_generator.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycli/rl/strategy_prompts.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycli/skills/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/agent/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/agent/agent_manager.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/agent/chat_events.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/agent/deep_agent.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/agent/mcp/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/agent/mcp/models.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/agent/multi_agent_team.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/agent/sandbox/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/agent/sandbox/file_ops.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/agent/sandbox/minio_sync.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/agent/sandbox/sandbox_pool.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/agent/sandbox/sandbox_recovery.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/agent/sandbox/session.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/agent/summarization_utils.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/auth/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/auth/ldap_service.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/auth/oa_cache.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/auth/oa_crypto.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/auth/oa_service.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/auth/wecom_ldap_service.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/config/Config.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/config/DatabaseConfig.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/config/ElasticsearchConfig.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/config/EmbeddingConfig.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/config/LLMConfig.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/config/LangfuseConfig.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/config/MQConfig.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/config/PgConfig.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/config/RedisConfig.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/config/RerankerConfig.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/config/SentryConfig.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/config/XxlJobConfig.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/config/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/database/async_base_db_service.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/database/async_database_service.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/database/base_db_service.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/database/database_service.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/database/elasticsearch_service.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/database/redis_service.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/database/token_usage_db_service.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/health/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/health/health_check.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/health/metrics.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/health/ping.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/heartbeat_process/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/heartbeat_process/heartbeat_config.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/heartbeat_process/heartbeat_process_manager.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/heartbeat_process/heartbeat_process_worker.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/llm/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/llm/embedding.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/llm/get_llm.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/llm/llm_logger.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/llm/llm_tokens.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/llm/llm_with_token_tracking.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/llm/native_with_fallback_runnable.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/llm/output_fixing_runnable.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/llm/struct_token.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/llm/sy_langfuse.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/llm/tiktoken_cache/9b5ad71b2ce5302211f9c61530b329a4922fc6a4 +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/llm/tiktoken_cache/fb374d419588a4632f3f557e76b4b70aebbca790 +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/llm/token_usage_es_service.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/llm/token_usage_mysql_service.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/llm/usage_token.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/logging/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/logging/async_sql_logger.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/logging/kafka_log.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/logging/logger_levels.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/logging/logger_wrapper.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/logging/process_logger.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/logging/sql_logger.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/mcp_server/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/mcp_server/server.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/middleware/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/middleware/context.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/middleware/cors.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/middleware/docs.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/middleware/exception.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/middleware/middleware.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/middleware/monitor_memory.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/middleware/mq.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/middleware/sandbox.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/middleware/timeout.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/middleware/token_tracking.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/middleware/tool_result_truncation.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/middleware/traceid.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/models/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/models/base_http.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/models/log.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/models/mcp_server_config.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/models/mqlistener_config.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/models/mqmsg_model.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/models/mqsend_config.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/models/sandbox.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/models/sso_user.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/models/token_usage.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/models/token_usage_mysql.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/models/xxljob_handler_config.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/notice/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/notice/uvicorn_monitor.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/notice/wecom_message.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/rabbitmq/process_pool_consumer.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/rabbitmq/rabbitmq_client.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/rabbitmq/rabbitmq_pool.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/rabbitmq/rabbitmq_service.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/rabbitmq/rabbitmq_service_client_manager.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/rabbitmq/rabbitmq_service_connection_monitor.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/rabbitmq/rabbitmq_service_consumer_manager.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/rabbitmq/rabbitmq_service_core.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/rabbitmq/rabbitmq_service_producer_manager.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/sentry/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/sentry/sy_sentry.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/services.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/sse/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/sse/event.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/sse/sse.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/synacos/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/synacos/example.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/synacos/example2.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/synacos/feign.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/synacos/feign_client.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/synacos/nacos_client_base.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/synacos/nacos_config_manager.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/synacos/nacos_heartbeat_manager.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/synacos/nacos_service.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/synacos/nacos_service_discovery.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/synacos/nacos_service_registration.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/synacos/param.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/tests/deep_agent_server.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/tests/test_consumer_recovery.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/tests/test_deep_agent.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/tests/test_dynamic_max_tokens.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/tests/test_email.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/tests/test_encoding_cache.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/tests/test_mcp_server.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/tests/test_minimax_reasoning.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/tests/test_mq.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/tests/test_oa_login.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/tests/test_real_summarization.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/tests/test_summarization_config.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/tests/test_summarization_real.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/tools/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/tools/async_utils.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/tools/docs.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/tools/env.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/tools/merge_headers.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/tools/snowflake.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/tools/syemail.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/tools/timing.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/xxljob/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/xxljob/xxljob_service.py +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon_python_lib.egg-info/SOURCES.txt +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon_python_lib.egg-info/dependency_links.txt +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon_python_lib.egg-info/entry_points.txt +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon_python_lib.egg-info/requires.txt +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon_python_lib.egg-info/top_level.txt +0 -0
- {sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/tests/test_sycli.py +0 -0
{sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/agent/mcp/tool_loader.py
RENAMED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
发现工具并作为 LangChain BaseTool 注入 Agent。
|
|
5
5
|
"""
|
|
6
6
|
|
|
7
|
+
import asyncio
|
|
7
8
|
import re
|
|
8
9
|
import hashlib
|
|
9
10
|
from typing import List, Optional, Callable, Awaitable, TYPE_CHECKING
|
|
@@ -45,45 +46,60 @@ def wrap_tool_with_error_handler(
|
|
|
45
46
|
original_coroutine = tool.coroutine
|
|
46
47
|
tool_name = tool.name
|
|
47
48
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
result = await original_coroutine(*args, **kwargs)
|
|
51
|
-
if on_tool_success:
|
|
52
|
-
try:
|
|
53
|
-
await on_tool_success(server_config_id, original_tool_name)
|
|
54
|
-
except Exception:
|
|
55
|
-
pass
|
|
56
|
-
return result
|
|
57
|
-
except Exception as e:
|
|
58
|
-
from langchain_core.tools import ToolException
|
|
59
|
-
err_type = type(e).__name__
|
|
60
|
-
err_msg = str(e)[:500]
|
|
61
|
-
SYLogger.warning(
|
|
62
|
-
f"[MCP] 工具 '{tool_name}' 调用失败 ({err_type}): {err_msg}")
|
|
49
|
+
MAX_RETRIES = 2
|
|
50
|
+
RETRY_DELAY_BASE = 1.0 # 秒
|
|
63
51
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
52
|
+
async def _safe_coroutine(*args, **kwargs):
|
|
53
|
+
last_exception = None
|
|
54
|
+
for attempt in range(MAX_RETRIES + 1):
|
|
55
|
+
try:
|
|
56
|
+
result = await original_coroutine(*args, **kwargs)
|
|
57
|
+
if on_tool_success:
|
|
58
|
+
try:
|
|
59
|
+
await on_tool_success(server_config_id, original_tool_name)
|
|
60
|
+
except Exception:
|
|
61
|
+
pass
|
|
62
|
+
return result
|
|
63
|
+
except Exception as e:
|
|
64
|
+
last_exception = e
|
|
65
|
+
if attempt < MAX_RETRIES:
|
|
66
|
+
delay = RETRY_DELAY_BASE * (attempt + 1)
|
|
67
|
+
SYLogger.info(
|
|
68
|
+
f"[MCP] 工具 '{tool_name}' 第 {attempt + 1}/{MAX_RETRIES} 次重试 "
|
|
69
|
+
f"({type(e).__name__}: {str(e)[:200]}), {delay}s 后重试")
|
|
70
|
+
await asyncio.sleep(delay)
|
|
71
|
+
continue
|
|
72
|
+
|
|
73
|
+
# 重试耗尽,返回错误
|
|
74
|
+
from langchain_core.tools import ToolException
|
|
75
|
+
err_type = type(e).__name__
|
|
76
|
+
err_msg = str(e)[:500]
|
|
77
|
+
SYLogger.warning(
|
|
78
|
+
f"[MCP] 工具 '{tool_name}' 调用失败,已重试 {MAX_RETRIES} 次 "
|
|
79
|
+
f"({err_type}): {err_msg}")
|
|
80
|
+
|
|
81
|
+
if on_tool_error:
|
|
82
|
+
try:
|
|
83
|
+
await on_tool_error(server_config_id, original_tool_name, f"{err_type}: {err_msg}")
|
|
84
|
+
except Exception:
|
|
85
|
+
pass
|
|
86
|
+
|
|
87
|
+
if isinstance(e, ToolException):
|
|
88
|
+
friendly_msg = (
|
|
89
|
+
f"MCP 工具 '{tool_name}' 调用失败(已重试 {MAX_RETRIES} 次)。\n"
|
|
90
|
+
f"错误详情: {err_msg}\n"
|
|
91
|
+
f"请根据错误信息判断是否可以不使用该工具继续完成任务。"
|
|
92
|
+
)
|
|
93
|
+
else:
|
|
94
|
+
friendly_msg = (
|
|
95
|
+
f"MCP 工具调用失败:工具 '{tool_name}' (服务器: {server_name}) 当前不可用(已重试 {MAX_RETRIES} 次)。\n"
|
|
96
|
+
f"错误类型: {err_type}\n"
|
|
97
|
+
f"可能原因: MCP 服务器未启动、网络不可达或连接超时。\n"
|
|
98
|
+
f"请尝试不使用该工具继续完成任务,或联系管理员检查 MCP 服务 '{server_name}'。"
|
|
99
|
+
)
|
|
100
|
+
if is_content_and_artifact:
|
|
101
|
+
return friendly_msg, None
|
|
102
|
+
return [friendly_msg]
|
|
87
103
|
|
|
88
104
|
tool.coroutine = _safe_coroutine
|
|
89
105
|
return tool
|
|
@@ -42,6 +42,35 @@ def _read_file_safe(path: str) -> bytes:
|
|
|
42
42
|
return f.read()
|
|
43
43
|
|
|
44
44
|
|
|
45
|
+
def filter_instances_by_owner(instances: list, user_id: str, timeout: float = 3.0) -> list:
|
|
46
|
+
"""过滤掉不属于当前用户的本地沙箱实例。
|
|
47
|
+
|
|
48
|
+
对每个实例调用 /v1/sandbox/health 获取 type 和 owner,
|
|
49
|
+
- remote 类型:始终保留(共享资源)
|
|
50
|
+
- local 类型:仅当 owner 与 user_id 匹配时保留(忽略大小写)
|
|
51
|
+
- health check 失败时保留实例(fail-open,由服务端 token 校验兜底)
|
|
52
|
+
"""
|
|
53
|
+
filtered = []
|
|
54
|
+
for ins in instances:
|
|
55
|
+
sb_url = f"http://{ins['ip']}:{ins['port']}"
|
|
56
|
+
try:
|
|
57
|
+
resp = requests.get(f"{sb_url}/v1/sandbox/health", timeout=timeout)
|
|
58
|
+
if resp.status_code == 200:
|
|
59
|
+
data = resp.json()
|
|
60
|
+
sb_type = data.get("type", "remote")
|
|
61
|
+
owner = data.get("owner", "")
|
|
62
|
+
if sb_type == "local" and owner and owner.lower() != user_id.lower():
|
|
63
|
+
SYLogger.info(
|
|
64
|
+
f"[Sandbox] 过滤非所有者本地沙箱: {sb_url}, "
|
|
65
|
+
f"owner={owner}, user_id={user_id}"
|
|
66
|
+
)
|
|
67
|
+
continue
|
|
68
|
+
except Exception:
|
|
69
|
+
pass
|
|
70
|
+
filtered.append(ins)
|
|
71
|
+
return filtered
|
|
72
|
+
|
|
73
|
+
|
|
45
74
|
class HTTPSandboxBackend(FileOperationsMixin, SandboxBackendProtocol):
|
|
46
75
|
"""
|
|
47
76
|
通过 HTTP API 连接远程沙箱容器
|
|
@@ -250,6 +279,11 @@ class HTTPSandboxBackend(FileOperationsMixin, SandboxBackendProtocol):
|
|
|
250
279
|
if not instances:
|
|
251
280
|
raise RuntimeError(f"服务 [{service_name}] 无可用实例")
|
|
252
281
|
|
|
282
|
+
# 过滤掉不属于当前用户的本地沙箱
|
|
283
|
+
instances = filter_instances_by_owner(instances, user_id)
|
|
284
|
+
if not instances:
|
|
285
|
+
raise RuntimeError(f"服务 [{service_name}] 无可用实例(已过滤非所有者本地沙箱)")
|
|
286
|
+
|
|
253
287
|
# 基于用户ID的负载均衡:使用哈希选择实例
|
|
254
288
|
if load_balance and len(instances) > 1:
|
|
255
289
|
hash_value = int(hashlib.md5(user_id.encode()).hexdigest(), 16)
|
|
@@ -320,6 +354,12 @@ class HTTPSandboxBackend(FileOperationsMixin, SandboxBackendProtocol):
|
|
|
320
354
|
SYLogger.warning(f"[Sandbox] Nacos 未发现可用服务: {self._nacos_service_name}")
|
|
321
355
|
return False
|
|
322
356
|
|
|
357
|
+
# 过滤掉不属于当前用户的本地沙箱
|
|
358
|
+
instances = filter_instances_by_owner(instances, self._user_id)
|
|
359
|
+
if not instances:
|
|
360
|
+
SYLogger.warning(f"[Sandbox] 过滤后无可用服务: {self._nacos_service_name}")
|
|
361
|
+
return False
|
|
362
|
+
|
|
323
363
|
instance = instances[0]
|
|
324
364
|
new_url = f"http://{instance['ip']}:{instance['port']}"
|
|
325
365
|
|
|
@@ -14,6 +14,7 @@ PostgreSQL Checkpoint 服务
|
|
|
14
14
|
# 获取 checkpointer
|
|
15
15
|
checkpointer = await PgCheckpointService.get_checkpointer()
|
|
16
16
|
"""
|
|
17
|
+
import asyncio
|
|
17
18
|
import logging
|
|
18
19
|
from typing import Optional, Any
|
|
19
20
|
|
|
@@ -27,6 +28,9 @@ class PgCheckpointService(metaclass=SingletonMeta):
|
|
|
27
28
|
_initialized: bool = False
|
|
28
29
|
_config: Optional[PgConfig] = None
|
|
29
30
|
_pool: Optional[Any] = None
|
|
31
|
+
_setup_attempts: int = 0
|
|
32
|
+
_max_setup_attempts: int = 10
|
|
33
|
+
_retry_interval: float = 5.0 # 重试间隔(秒)
|
|
30
34
|
|
|
31
35
|
def __init__(self):
|
|
32
36
|
pass
|
|
@@ -41,6 +45,18 @@ class PgCheckpointService(metaclass=SingletonMeta):
|
|
|
41
45
|
if cls._initialized:
|
|
42
46
|
return
|
|
43
47
|
|
|
48
|
+
# 超过最大重试次数则不再尝试
|
|
49
|
+
if cls._setup_attempts >= cls._max_setup_attempts:
|
|
50
|
+
logging.warning(
|
|
51
|
+
f"PgCheckpointService 已达到最大初始化重试次数 ({cls._max_setup_attempts}),不再重试")
|
|
52
|
+
return
|
|
53
|
+
|
|
54
|
+
# 非首次尝试时等待间隔
|
|
55
|
+
if cls._setup_attempts > 0:
|
|
56
|
+
await asyncio.sleep(cls._retry_interval)
|
|
57
|
+
|
|
58
|
+
cls._setup_attempts += 1
|
|
59
|
+
|
|
44
60
|
try:
|
|
45
61
|
if config is None:
|
|
46
62
|
try:
|
|
@@ -102,12 +118,16 @@ class PgCheckpointService(metaclass=SingletonMeta):
|
|
|
102
118
|
async def get_checkpointer(cls) -> Any:
|
|
103
119
|
"""获取 AsyncPostgresSaver 实例
|
|
104
120
|
|
|
121
|
+
如果未初始化,会尝试重新初始化(最多 _max_setup_attempts 次)。
|
|
122
|
+
|
|
105
123
|
Returns:
|
|
106
124
|
AsyncPostgresSaver 实例
|
|
107
125
|
|
|
108
126
|
Raises:
|
|
109
|
-
RuntimeError:
|
|
127
|
+
RuntimeError: 如果服务未初始化且重试次数已耗尽
|
|
110
128
|
"""
|
|
129
|
+
if not cls._initialized or not cls._checkpointer:
|
|
130
|
+
await cls.setup()
|
|
111
131
|
if not cls._initialized or not cls._checkpointer:
|
|
112
132
|
raise RuntimeError("PgCheckpointService 未初始化,请先调用 PgCheckpointService.setup()")
|
|
113
133
|
return cls._checkpointer
|
|
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.5a17 → sycommon_python_lib-0.2.5a19}/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.5a17 → sycommon_python_lib-0.2.5a19}/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.5a17 → sycommon_python_lib-0.2.5a19}/src/command/templates/base/.env.tpl
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/command/templates/base/__init__.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/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.5a17 → sycommon_python_lib-0.2.5a19}/src/command/templates/cli/__init__.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/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.5a17 → sycommon_python_lib-0.2.5a19}/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.5a17 → sycommon_python_lib-0.2.5a19}/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
|
{sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycli/cdp/capabilities/__init__.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycli/cdp/capabilities/console.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycli/cdp/capabilities/dom.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/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.5a17 → sycommon_python_lib-0.2.5a19}/src/sycli/commands/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycli/commands/chat_cmd.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycli/commands/create_cmd.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycli/commands/evaluate_cmd.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycli/commands/init_cmd.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycli/commands/memory_cmd.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycli/commands/resume_cmd.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/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
|
{sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycli/core/git_integration.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycli/evaluate/__init__.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycli/evaluate/api_evaluator.py
RENAMED
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycli/memory/compressor.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycli/models/config_models.py
RENAMED
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycli/rl/baseline_tests.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycli/rl/harness_prompts.py
RENAMED
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycli/rl/optimization_logger.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycli/rl/pre_validation.py
RENAMED
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycli/rl/strategy_bandit.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycli/rl/strategy_generator.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycli/rl/strategy_prompts.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/agent/__init__.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/agent/agent_manager.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/agent/chat_events.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/agent/deep_agent.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/agent/mcp/__init__.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/agent/mcp/models.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/agent/multi_agent_team.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.5a17 → sycommon_python_lib-0.2.5a19}/src/sycommon/agent/sandbox/__init__.py
RENAMED
|
File without changes
|