sycommon-python-lib 0.2.5a40__tar.gz → 0.2.5a42__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.5a40 → sycommon_python_lib-0.2.5a42}/PKG-INFO +1 -1
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/pyproject.toml +1 -1
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/agent/deep_agent.py +80 -29
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/auth/wecom_ldap_service.py +54 -10
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon_python_lib.egg-info/PKG-INFO +1 -1
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/README.md +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/setup.cfg +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/command/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/command/cli.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/command/core/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/command/core/console.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/command/core/models.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/command/core/project.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/command/core/utils.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/command/templates/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/command/templates/agent/README.md.tpl +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/command/templates/agent/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/command/templates/agent/agent/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/command/templates/agent/agent/main_agent.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/command/templates/agent/agent/nodes/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/command/templates/agent/agent/nodes/example_node.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/command/templates/agent/agent/states/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/command/templates/agent/agent/states/agent_state.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/command/templates/agent/api/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/command/templates/agent/api/query.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/command/templates/agent/api/sse/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/command/templates/agent/api/sse/agent.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/command/templates/agent/app.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/command/templates/agent/client/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/command/templates/agent/db/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/command/templates/agent/db/model/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/command/templates/agent/db/model/entity.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/command/templates/agent/db/service.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/command/templates/agent/model/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/command/templates/agent/model/parse.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/command/templates/agent/tools/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/command/templates/agent/tools/mq.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/command/templates/base/.env.tpl +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/command/templates/base/.gitignore.tpl +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/command/templates/base/Dockerfile.tpl +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/command/templates/base/README.md.tpl +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/command/templates/base/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/command/templates/base/app.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/command/templates/base/app.yaml.tpl +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/command/templates/base/client/FileServiceClient.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/command/templates/base/client/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/command/templates/base/model/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/command/templates/base/model/file_info.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/command/templates/base/requirements.txt.tpl +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/command/templates/cli/README.md.tpl +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/command/templates/cli/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/command/templates/cli/app.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/command/templates/cli/commands/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/command/templates/cli/commands/hello.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/command/templates/cli/pyproject.toml.tpl +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/command/templates/cli/tools/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/command/templates/web/README.md.tpl +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/command/templates/web/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/command/templates/web/api/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/command/templates/web/api/echo.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/command/templates/web/api/sse/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/command/templates/web/api/sse/echo.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/command/templates/web/app.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/command/templates/web/client/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/command/templates/web/model/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/command/templates/web/tools/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/command/templates/web/tools/mq.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/nexus/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycli/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycli/__main__.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycli/agents/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycli/agents/factory.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycli/agents/prompts.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycli/cdp/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycli/cdp/browser.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycli/cdp/capabilities/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycli/cdp/capabilities/console.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycli/cdp/capabilities/dom.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycli/cdp/capabilities/network.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycli/cdp/capabilities/page_errors.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycli/cdp/capabilities/performance.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycli/cdp/capabilities/screenshot.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycli/cdp/client.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycli/cdp/protocol.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycli/cdp/repl.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycli/cli.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycli/commands/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycli/commands/cdp_cmd.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycli/commands/chat_cmd.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycli/commands/create_cmd.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycli/commands/evaluate_cmd.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycli/commands/init_cmd.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycli/commands/memory_cmd.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycli/commands/resume_cmd.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycli/commands/rollback_cmd.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycli/commands/run_cmd.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycli/core/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycli/core/backend.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycli/core/config.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycli/core/display.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycli/core/git_integration.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycli/core/llm.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycli/core/state.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycli/evaluate/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycli/evaluate/api_evaluator.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycli/memory/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycli/memory/compressor.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycli/memory/full.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycli/memory/hot.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycli/memory/manager.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycli/memory/warm.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycli/mode/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycli/mode/create.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycli/mode/optimize.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycli/models/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycli/models/config_models.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycli/rl/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycli/rl/baseline_tests.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycli/rl/checkpoint.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycli/rl/convergence.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycli/rl/diagnosis.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycli/rl/engine.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycli/rl/environment.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycli/rl/experience.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycli/rl/harness_prompts.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycli/rl/history.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycli/rl/optimization_logger.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycli/rl/pre_validation.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycli/rl/reward.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycli/rl/strategy_bandit.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycli/rl/strategy_generator.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycli/rl/strategy_prompts.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycli/skills/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/agent/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/agent/agent_manager.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/agent/chat_events.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/agent/mcp/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/agent/mcp/models.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/agent/mcp/tool_loader.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/agent/multi_agent_team.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/agent/sandbox/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/agent/sandbox/file_ops.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/agent/sandbox/http_sandbox_backend.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/agent/sandbox/minio_sync.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/agent/sandbox/sandbox_pool.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/agent/sandbox/sandbox_recovery.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/agent/sandbox/session.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/agent/summarization_utils.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/auth/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/auth/ldap_service.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/auth/oa_cache.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/auth/oa_crypto.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/auth/oa_service.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/config/Config.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/config/DatabaseConfig.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/config/ElasticsearchConfig.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/config/EmbeddingConfig.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/config/LLMConfig.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/config/LangfuseConfig.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/config/MQConfig.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/config/PgConfig.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/config/RedisConfig.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/config/RerankerConfig.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/config/SentryConfig.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/config/XxlJobConfig.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/config/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/database/async_base_db_service.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/database/async_database_service.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/database/base_db_service.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/database/database_service.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/database/elasticsearch_service.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/database/pg_checkpoint_service.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/database/redis_service.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/database/token_usage_db_service.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/health/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/health/health_check.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/health/metrics.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/health/ping.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/heartbeat_process/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/heartbeat_process/heartbeat_config.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/heartbeat_process/heartbeat_process_manager.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/heartbeat_process/heartbeat_process_worker.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/llm/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/llm/embedding.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/llm/get_llm.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/llm/llm_logger.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/llm/llm_tokens.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/llm/llm_with_token_tracking.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/llm/native_with_fallback_runnable.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/llm/output_fixing_runnable.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/llm/struct_token.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/llm/sy_langfuse.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/llm/tiktoken_cache/9b5ad71b2ce5302211f9c61530b329a4922fc6a4 +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/llm/tiktoken_cache/fb374d419588a4632f3f557e76b4b70aebbca790 +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/llm/token_usage_es_service.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/llm/token_usage_mysql_service.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/llm/token_utils.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/llm/usage_token.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/logging/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/logging/async_sql_logger.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/logging/kafka_log.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/logging/logger_levels.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/logging/logger_wrapper.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/logging/process_logger.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/logging/sql_logger.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/mcp_server/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/mcp_server/server.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/middleware/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/middleware/context.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/middleware/cors.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/middleware/docs.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/middleware/exception.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/middleware/middleware.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/middleware/monitor_memory.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/middleware/mq.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/middleware/sandbox.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/middleware/timeout.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/middleware/token_tracking.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/middleware/tool_result_truncation.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/middleware/traceid.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/models/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/models/base_http.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/models/log.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/models/mcp_server_config.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/models/mqlistener_config.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/models/mqmsg_model.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/models/mqsend_config.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/models/sandbox.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/models/sso_user.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/models/token_usage.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/models/token_usage_mysql.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/models/xxljob_handler_config.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/notice/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/notice/uvicorn_monitor.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/notice/wecom_message.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/rabbitmq/process_pool_consumer.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/rabbitmq/rabbitmq_client.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/rabbitmq/rabbitmq_pool.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/rabbitmq/rabbitmq_service.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/rabbitmq/rabbitmq_service_client_manager.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/rabbitmq/rabbitmq_service_connection_monitor.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/rabbitmq/rabbitmq_service_consumer_manager.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/rabbitmq/rabbitmq_service_core.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/rabbitmq/rabbitmq_service_producer_manager.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/sentry/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/sentry/sy_sentry.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/services.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/sse/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/sse/event.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/sse/sse.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/synacos/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/synacos/example.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/synacos/example2.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/synacos/feign.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/synacos/feign_client.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/synacos/nacos_client_base.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/synacos/nacos_config_manager.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/synacos/nacos_heartbeat_manager.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/synacos/nacos_service.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/synacos/nacos_service_discovery.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/synacos/nacos_service_registration.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/synacos/param.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/tests/deep_agent_server.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/tests/test_consumer_loss_rootcause.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/tests/test_consumer_recovery.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/tests/test_deep_agent.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/tests/test_dynamic_max_tokens.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/tests/test_email.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/tests/test_encoding_cache.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/tests/test_fix_verification.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/tests/test_mcp_server.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/tests/test_minimax_reasoning.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/tests/test_mq.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/tests/test_oa_login.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/tests/test_real_summarization.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/tests/test_summarization_config.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/tests/test_summarization_real.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/tests/test_summary_leak_e2e.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/tools/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/tools/async_utils.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/tools/docs.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/tools/env.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/tools/merge_headers.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/tools/snowflake.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/tools/syemail.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/tools/timing.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/xxljob/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/xxljob/xxljob_service.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon_python_lib.egg-info/SOURCES.txt +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon_python_lib.egg-info/dependency_links.txt +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon_python_lib.egg-info/entry_points.txt +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon_python_lib.egg-info/requires.txt +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon_python_lib.egg-info/top_level.txt +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/tests/test_asyncio_logging.py +0 -0
- {sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/tests/test_sycli.py +0 -0
{sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycommon/agent/deep_agent.py
RENAMED
|
@@ -1221,31 +1221,74 @@ async def create_deep_agent(
|
|
|
1221
1221
|
|
|
1222
1222
|
|
|
1223
1223
|
def _parse_skill_version(content: str) -> str:
|
|
1224
|
-
"""从 SKILL.md 内容中解析 version 字段,无 version 返回空字符串
|
|
1225
|
-
|
|
1226
|
-
|
|
1227
|
-
|
|
1228
|
-
|
|
1229
|
-
|
|
1230
|
-
|
|
1231
|
-
|
|
1232
|
-
|
|
1233
|
-
|
|
1224
|
+
"""从 SKILL.md 内容中解析 version 字段,无 version 返回空字符串
|
|
1225
|
+
|
|
1226
|
+
使用逐行解析而非 yaml.safe_load,避免 description 中含冒号导致 YAML 解析失败。
|
|
1227
|
+
"""
|
|
1228
|
+
in_frontmatter = False
|
|
1229
|
+
for line in content.split("\n"):
|
|
1230
|
+
stripped = line.strip()
|
|
1231
|
+
if stripped == "---":
|
|
1232
|
+
if in_frontmatter:
|
|
1233
|
+
break # 结束 frontmatter
|
|
1234
|
+
in_frontmatter = True
|
|
1235
|
+
continue
|
|
1236
|
+
if in_frontmatter and stripped.startswith("version:"):
|
|
1237
|
+
return stripped.split(":", 1)[1].strip()
|
|
1234
1238
|
return ""
|
|
1235
1239
|
|
|
1236
1240
|
|
|
1241
|
+
async def _sync_skill_to_minio(
|
|
1242
|
+
minio_service,
|
|
1243
|
+
local_skill_dir: str,
|
|
1244
|
+
skill_name: str,
|
|
1245
|
+
) -> int:
|
|
1246
|
+
"""将单个技能目录上传到 MinIO(skills/{skill_name}/...)
|
|
1247
|
+
|
|
1248
|
+
Returns:
|
|
1249
|
+
成功上传的文件数量
|
|
1250
|
+
"""
|
|
1251
|
+
count = 0
|
|
1252
|
+
for root, _dirs, files in os.walk(local_skill_dir):
|
|
1253
|
+
for fname in files:
|
|
1254
|
+
fpath = os.path.join(root, fname)
|
|
1255
|
+
rel = os.path.relpath(fpath, local_skill_dir)
|
|
1256
|
+
# 统一使用 / 作为分隔符
|
|
1257
|
+
object_key = f"skills/{skill_name}/{rel.replace(os.sep, '/')}"
|
|
1258
|
+
try:
|
|
1259
|
+
content = await asyncio.to_thread(
|
|
1260
|
+
lambda p: open(p, "rb").read(), fpath)
|
|
1261
|
+
await minio_service.aupload_bytes(object_key, content)
|
|
1262
|
+
count += 1
|
|
1263
|
+
except Exception as e:
|
|
1264
|
+
SYLogger.warning(
|
|
1265
|
+
f"[MinIO] 技能文件上传失败: {object_key}, {e}")
|
|
1266
|
+
SYLogger.info(f"[MinIO] 技能 {skill_name} 同步完成: {count} 个文件")
|
|
1267
|
+
return count
|
|
1268
|
+
|
|
1269
|
+
|
|
1237
1270
|
async def _sync_skills_to_sandbox(
|
|
1238
1271
|
skills_dir: str,
|
|
1239
1272
|
backend: HTTPSandboxBackend,
|
|
1240
1273
|
) -> None:
|
|
1241
|
-
"""
|
|
1274
|
+
"""同步技能目录到沙箱和 MinIO(按版本检查,版本不一致则全量覆盖)
|
|
1242
1275
|
|
|
1243
|
-
|
|
1244
|
-
|
|
1276
|
+
遍历本地 skills_dir 下所有技能子目录,比较本地与沙箱的 SKILL.md version:
|
|
1277
|
+
- 版本一致:跳过
|
|
1278
|
+
- 版本不一致或沙箱无版本:删除旧目录,全量上传到沙箱和 MinIO
|
|
1279
|
+
同步完成后将技能名加入 backend._synced_skills,跳过后续懒同步。
|
|
1245
1280
|
"""
|
|
1246
1281
|
if not os.path.isdir(skills_dir):
|
|
1247
1282
|
return
|
|
1248
1283
|
|
|
1284
|
+
try:
|
|
1285
|
+
from sycommon.agent.sandbox.minio_sync import MinioSyncService
|
|
1286
|
+
minio_available = MinioSyncService.is_available()
|
|
1287
|
+
minio_service = MinioSyncService() if minio_available else None
|
|
1288
|
+
except Exception:
|
|
1289
|
+
minio_available = False
|
|
1290
|
+
minio_service = None
|
|
1291
|
+
|
|
1249
1292
|
try:
|
|
1250
1293
|
# 获取沙箱 /skills 下已有的目录列表
|
|
1251
1294
|
existing_dirs = set()
|
|
@@ -1255,8 +1298,9 @@ async def _sync_skills_to_sandbox(
|
|
|
1255
1298
|
if child.is_dir:
|
|
1256
1299
|
existing_dirs.add(child.name)
|
|
1257
1300
|
|
|
1258
|
-
|
|
1259
|
-
|
|
1301
|
+
skill_count = 0
|
|
1302
|
+
skip_count = 0
|
|
1303
|
+
for skill_name in sorted(os.listdir(skills_dir)):
|
|
1260
1304
|
src = os.path.join(skills_dir, skill_name)
|
|
1261
1305
|
if not os.path.isdir(src):
|
|
1262
1306
|
continue
|
|
@@ -1271,11 +1315,12 @@ async def _sync_skills_to_sandbox(
|
|
|
1271
1315
|
except Exception:
|
|
1272
1316
|
pass
|
|
1273
1317
|
|
|
1318
|
+
# 比较版本:一致则跳过
|
|
1274
1319
|
if skill_name in existing_dirs:
|
|
1275
|
-
# 读取沙箱中的版本
|
|
1276
1320
|
remote_version = ""
|
|
1277
1321
|
try:
|
|
1278
|
-
remote_content = await backend.aread(
|
|
1322
|
+
remote_content = await backend.aread(
|
|
1323
|
+
f"/skills/{skill_name}/SKILL.md")
|
|
1279
1324
|
if remote_content:
|
|
1280
1325
|
remote_version = _parse_skill_version(remote_content)
|
|
1281
1326
|
except Exception:
|
|
@@ -1284,27 +1329,33 @@ async def _sync_skills_to_sandbox(
|
|
|
1284
1329
|
if remote_version and remote_version == local_version:
|
|
1285
1330
|
SYLogger.debug(
|
|
1286
1331
|
f"[DeepAgent] 技能版本一致,跳过: {skill_name} v{local_version}")
|
|
1332
|
+
backend._synced_skills.add(skill_name)
|
|
1333
|
+
skip_count += 1
|
|
1287
1334
|
continue
|
|
1288
1335
|
|
|
1289
|
-
#
|
|
1336
|
+
# 版本不一致或沙箱无版本,删除旧目录后全量覆盖
|
|
1290
1337
|
try:
|
|
1291
1338
|
await backend.aexecute(f"rm -rf /skills/{skill_name}")
|
|
1292
1339
|
SYLogger.info(
|
|
1293
|
-
f"[DeepAgent] 技能版本不一致,覆盖: {skill_name}
|
|
1340
|
+
f"[DeepAgent] 技能版本不一致,覆盖: {skill_name} "
|
|
1341
|
+
f"({remote_version or '无版本'} → {local_version})")
|
|
1294
1342
|
except Exception as e:
|
|
1295
1343
|
SYLogger.warning(
|
|
1296
1344
|
f"[DeepAgent] 删除旧版技能失败: {skill_name}, {e}")
|
|
1297
|
-
continue
|
|
1298
1345
|
|
|
1299
|
-
#
|
|
1300
|
-
|
|
1301
|
-
|
|
1302
|
-
|
|
1303
|
-
|
|
1304
|
-
|
|
1305
|
-
|
|
1306
|
-
|
|
1307
|
-
|
|
1346
|
+
# 全量上传整个技能目录到沙箱
|
|
1347
|
+
await backend.async_sync_dirs([(src, f"/skills/{skill_name}")])
|
|
1348
|
+
backend._synced_skills.add(skill_name)
|
|
1349
|
+
skill_count += 1
|
|
1350
|
+
SYLogger.info(
|
|
1351
|
+
f"[DeepAgent] 全量同步技能到沙箱: {skill_name} v{local_version}")
|
|
1352
|
+
|
|
1353
|
+
# 同步到 MinIO
|
|
1354
|
+
if minio_service:
|
|
1355
|
+
await _sync_skill_to_minio(minio_service, src, skill_name)
|
|
1356
|
+
|
|
1357
|
+
SYLogger.info(
|
|
1358
|
+
f"[DeepAgent] 技能同步完成: 同步 {skill_count} 个, 跳过 {skip_count} 个")
|
|
1308
1359
|
except Exception as e:
|
|
1309
1360
|
SYLogger.warning(f"[DeepAgent] 技能同步失败: {e}")
|
|
1310
1361
|
|
|
@@ -267,11 +267,45 @@ class WeComLDAPService(metaclass=SingletonMeta):
|
|
|
267
267
|
async with session.post(url, json=json_body or {}) as resp:
|
|
268
268
|
return await resp.json()
|
|
269
269
|
|
|
270
|
+
async def _get_bot_access_token(self) -> str:
|
|
271
|
+
"""获取用于 open_userid 解码的 access_token
|
|
272
|
+
|
|
273
|
+
本地开发(IS_DEV=true)时,使用 WeComDecodeUserID 配置的凭据,
|
|
274
|
+
线上直接使用 WeCom 配置的凭据。
|
|
275
|
+
"""
|
|
276
|
+
import os
|
|
277
|
+
from sycommon.config.Config import Config
|
|
278
|
+
|
|
279
|
+
is_dev = os.environ.get("IS_DEV") == "true"
|
|
280
|
+
config = Config().config.get("llm", {})
|
|
281
|
+
|
|
282
|
+
if is_dev:
|
|
283
|
+
wecom_config = config.get("WeComDecodeUserID", {}) or config.get("WeCom", {})
|
|
284
|
+
else:
|
|
285
|
+
wecom_config = config.get("WeCom", {})
|
|
286
|
+
|
|
287
|
+
corpid = wecom_config.get("corpid", "")
|
|
288
|
+
corpsecret = wecom_config.get("corpsecret", "")
|
|
289
|
+
if not corpid or not corpsecret:
|
|
290
|
+
raise ValueError("解码凭据配置不完整,需要配置 llm.WeComDecodeUserID 或 llm.WeCom")
|
|
291
|
+
|
|
292
|
+
url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken"
|
|
293
|
+
params = {"corpid": corpid, "corpsecret": corpsecret}
|
|
294
|
+
async with aiohttp.ClientSession() as session:
|
|
295
|
+
async with session.get(url, params=params) as resp:
|
|
296
|
+
data = await resp.json()
|
|
297
|
+
|
|
298
|
+
if data.get("errcode") != 0:
|
|
299
|
+
raise RuntimeError(f"获取解码 access_token 失败: {data}")
|
|
300
|
+
|
|
301
|
+
logging.info("[WeComLDAP] 解码 access_token 已刷新")
|
|
302
|
+
return data["access_token"]
|
|
303
|
+
|
|
270
304
|
async def _decode_open_userid(self, open_userid: str) -> Optional[str]:
|
|
271
305
|
"""将企微密文 open_userid 转换为明文 userid
|
|
272
306
|
|
|
273
|
-
|
|
274
|
-
|
|
307
|
+
使用机器人应用的 access_token 调用 batch/openuserid_to_userid 接口解码。
|
|
308
|
+
机器人回调推的 userid 是加密的 open_userid,只有机器人应用的 token 才能转换。
|
|
275
309
|
|
|
276
310
|
Args:
|
|
277
311
|
open_userid: 密文格式的企微用户ID
|
|
@@ -280,10 +314,14 @@ class WeComLDAPService(metaclass=SingletonMeta):
|
|
|
280
314
|
解码后的明文 userid,失败返回 None
|
|
281
315
|
"""
|
|
282
316
|
try:
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
317
|
+
token = await self._get_bot_access_token()
|
|
318
|
+
url = "https://qyapi.weixin.qq.com/cgi-bin/batch/openuserid_to_userid"
|
|
319
|
+
async with aiohttp.ClientSession() as session:
|
|
320
|
+
async with session.post(
|
|
321
|
+
f"{url}?access_token={token}",
|
|
322
|
+
json={"open_userid_list": [open_userid]},
|
|
323
|
+
) as resp:
|
|
324
|
+
data = await resp.json()
|
|
287
325
|
if data.get("errcode") != 0:
|
|
288
326
|
SYLogger.warning(
|
|
289
327
|
f"[WeComLDAP] open_userid 解码失败: {data}"
|
|
@@ -334,10 +372,16 @@ class WeComLDAPService(metaclass=SingletonMeta):
|
|
|
334
372
|
return decoded if decoded else userid
|
|
335
373
|
|
|
336
374
|
async def _get_wecom_user(self, userid: str) -> Optional[dict]:
|
|
337
|
-
"""获取单个企微用户详情
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
375
|
+
"""获取单个企微用户详情
|
|
376
|
+
|
|
377
|
+
IS_DEV=true 时使用 WeComDecodeUserID 的 token,
|
|
378
|
+
线上使用 WeCom 的 token。
|
|
379
|
+
"""
|
|
380
|
+
token = await self._get_bot_access_token()
|
|
381
|
+
url = f"https://qyapi.weixin.qq.com/cgi-bin/user/get"
|
|
382
|
+
async with aiohttp.ClientSession() as session:
|
|
383
|
+
async with session.get(url, params={"access_token": token, "userid": userid}) as resp:
|
|
384
|
+
data = await resp.json()
|
|
341
385
|
if data.get("errcode") != 0:
|
|
342
386
|
SYLogger.warning(f"[WeComLDAP] 获取企微用户 {userid} 失败: {data}")
|
|
343
387
|
return None
|
|
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.5a40 → sycommon_python_lib-0.2.5a42}/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.5a40 → sycommon_python_lib-0.2.5a42}/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.5a40 → sycommon_python_lib-0.2.5a42}/src/command/templates/base/.env.tpl
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/command/templates/base/__init__.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/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.5a40 → sycommon_python_lib-0.2.5a42}/src/command/templates/cli/__init__.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/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.5a40 → sycommon_python_lib-0.2.5a42}/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.5a40 → sycommon_python_lib-0.2.5a42}/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.5a40 → sycommon_python_lib-0.2.5a42}/src/sycli/cdp/capabilities/__init__.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycli/cdp/capabilities/console.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycli/cdp/capabilities/dom.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/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.5a40 → sycommon_python_lib-0.2.5a42}/src/sycli/commands/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycli/commands/chat_cmd.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycli/commands/create_cmd.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycli/commands/evaluate_cmd.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycli/commands/init_cmd.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycli/commands/memory_cmd.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycli/commands/resume_cmd.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/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.5a40 → sycommon_python_lib-0.2.5a42}/src/sycli/core/git_integration.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycli/evaluate/__init__.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycli/evaluate/api_evaluator.py
RENAMED
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/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.5a40 → sycommon_python_lib-0.2.5a42}/src/sycli/models/config_models.py
RENAMED
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/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.5a40 → sycommon_python_lib-0.2.5a42}/src/sycli/rl/harness_prompts.py
RENAMED
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycli/rl/optimization_logger.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycli/rl/pre_validation.py
RENAMED
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycli/rl/strategy_bandit.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycli/rl/strategy_generator.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.5a40 → sycommon_python_lib-0.2.5a42}/src/sycli/rl/strategy_prompts.py
RENAMED
|
File without changes
|