sycommon-python-lib 0.2.5a42__tar.gz → 0.2.6a1__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.5a42 → sycommon_python_lib-0.2.6a1}/PKG-INFO +1 -1
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/pyproject.toml +1 -1
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/agent/deep_agent.py +50 -13
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/agent/multi_agent_team.py +9 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/auth/wecom_ldap_service.py +140 -3
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon_python_lib.egg-info/PKG-INFO +1 -1
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/README.md +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/setup.cfg +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/command/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/command/cli.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/command/core/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/command/core/console.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/command/core/models.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/command/core/project.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/command/core/utils.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/command/templates/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/command/templates/agent/README.md.tpl +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/command/templates/agent/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/command/templates/agent/agent/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/command/templates/agent/agent/main_agent.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/command/templates/agent/agent/nodes/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/command/templates/agent/agent/nodes/example_node.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/command/templates/agent/agent/states/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/command/templates/agent/agent/states/agent_state.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/command/templates/agent/api/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/command/templates/agent/api/query.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/command/templates/agent/api/sse/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/command/templates/agent/api/sse/agent.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/command/templates/agent/app.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/command/templates/agent/client/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/command/templates/agent/db/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/command/templates/agent/db/model/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/command/templates/agent/db/model/entity.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/command/templates/agent/db/service.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/command/templates/agent/model/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/command/templates/agent/model/parse.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/command/templates/agent/tools/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/command/templates/agent/tools/mq.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/command/templates/base/.env.tpl +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/command/templates/base/.gitignore.tpl +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/command/templates/base/Dockerfile.tpl +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/command/templates/base/README.md.tpl +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/command/templates/base/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/command/templates/base/app.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/command/templates/base/app.yaml.tpl +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/command/templates/base/client/FileServiceClient.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/command/templates/base/client/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/command/templates/base/model/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/command/templates/base/model/file_info.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/command/templates/base/requirements.txt.tpl +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/command/templates/cli/README.md.tpl +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/command/templates/cli/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/command/templates/cli/app.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/command/templates/cli/commands/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/command/templates/cli/commands/hello.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/command/templates/cli/pyproject.toml.tpl +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/command/templates/cli/tools/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/command/templates/web/README.md.tpl +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/command/templates/web/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/command/templates/web/api/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/command/templates/web/api/echo.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/command/templates/web/api/sse/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/command/templates/web/api/sse/echo.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/command/templates/web/app.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/command/templates/web/client/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/command/templates/web/model/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/command/templates/web/tools/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/command/templates/web/tools/mq.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/nexus/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycli/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycli/__main__.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycli/agents/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycli/agents/factory.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycli/agents/prompts.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycli/cdp/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycli/cdp/browser.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycli/cdp/capabilities/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycli/cdp/capabilities/console.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycli/cdp/capabilities/dom.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycli/cdp/capabilities/network.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycli/cdp/capabilities/page_errors.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycli/cdp/capabilities/performance.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycli/cdp/capabilities/screenshot.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycli/cdp/client.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycli/cdp/protocol.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycli/cdp/repl.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycli/cli.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycli/commands/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycli/commands/cdp_cmd.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycli/commands/chat_cmd.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycli/commands/create_cmd.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycli/commands/evaluate_cmd.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycli/commands/init_cmd.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycli/commands/memory_cmd.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycli/commands/resume_cmd.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycli/commands/rollback_cmd.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycli/commands/run_cmd.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycli/core/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycli/core/backend.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycli/core/config.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycli/core/display.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycli/core/git_integration.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycli/core/llm.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycli/core/state.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycli/evaluate/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycli/evaluate/api_evaluator.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycli/memory/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycli/memory/compressor.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycli/memory/full.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycli/memory/hot.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycli/memory/manager.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycli/memory/warm.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycli/mode/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycli/mode/create.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycli/mode/optimize.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycli/models/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycli/models/config_models.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycli/rl/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycli/rl/baseline_tests.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycli/rl/checkpoint.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycli/rl/convergence.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycli/rl/diagnosis.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycli/rl/engine.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycli/rl/environment.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycli/rl/experience.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycli/rl/harness_prompts.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycli/rl/history.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycli/rl/optimization_logger.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycli/rl/pre_validation.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycli/rl/reward.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycli/rl/strategy_bandit.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycli/rl/strategy_generator.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycli/rl/strategy_prompts.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycli/skills/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/agent/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/agent/agent_manager.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/agent/chat_events.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/agent/mcp/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/agent/mcp/models.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/agent/mcp/tool_loader.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/agent/sandbox/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/agent/sandbox/file_ops.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/agent/sandbox/http_sandbox_backend.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/agent/sandbox/minio_sync.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/agent/sandbox/sandbox_pool.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/agent/sandbox/sandbox_recovery.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/agent/sandbox/session.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/agent/summarization_utils.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/auth/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/auth/ldap_service.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/auth/oa_cache.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/auth/oa_crypto.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/auth/oa_service.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/config/Config.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/config/DatabaseConfig.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/config/ElasticsearchConfig.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/config/EmbeddingConfig.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/config/LLMConfig.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/config/LangfuseConfig.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/config/MQConfig.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/config/PgConfig.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/config/RedisConfig.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/config/RerankerConfig.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/config/SentryConfig.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/config/XxlJobConfig.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/config/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/database/async_base_db_service.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/database/async_database_service.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/database/base_db_service.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/database/database_service.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/database/elasticsearch_service.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/database/pg_checkpoint_service.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/database/redis_service.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/database/token_usage_db_service.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/health/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/health/health_check.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/health/metrics.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/health/ping.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/heartbeat_process/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/heartbeat_process/heartbeat_config.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/heartbeat_process/heartbeat_process_manager.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/heartbeat_process/heartbeat_process_worker.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/llm/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/llm/embedding.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/llm/get_llm.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/llm/llm_logger.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/llm/llm_tokens.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/llm/llm_with_token_tracking.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/llm/native_with_fallback_runnable.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/llm/output_fixing_runnable.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/llm/struct_token.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/llm/sy_langfuse.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/llm/tiktoken_cache/9b5ad71b2ce5302211f9c61530b329a4922fc6a4 +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/llm/tiktoken_cache/fb374d419588a4632f3f557e76b4b70aebbca790 +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/llm/token_usage_es_service.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/llm/token_usage_mysql_service.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/llm/token_utils.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/llm/usage_token.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/logging/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/logging/async_sql_logger.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/logging/kafka_log.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/logging/logger_levels.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/logging/logger_wrapper.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/logging/process_logger.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/logging/sql_logger.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/mcp_server/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/mcp_server/server.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/middleware/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/middleware/context.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/middleware/cors.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/middleware/docs.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/middleware/exception.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/middleware/middleware.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/middleware/monitor_memory.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/middleware/mq.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/middleware/sandbox.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/middleware/timeout.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/middleware/token_tracking.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/middleware/tool_result_truncation.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/middleware/traceid.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/models/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/models/base_http.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/models/log.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/models/mcp_server_config.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/models/mqlistener_config.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/models/mqmsg_model.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/models/mqsend_config.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/models/sandbox.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/models/sso_user.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/models/token_usage.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/models/token_usage_mysql.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/models/xxljob_handler_config.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/notice/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/notice/uvicorn_monitor.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/notice/wecom_message.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/rabbitmq/process_pool_consumer.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/rabbitmq/rabbitmq_client.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/rabbitmq/rabbitmq_pool.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/rabbitmq/rabbitmq_service.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/rabbitmq/rabbitmq_service_client_manager.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/rabbitmq/rabbitmq_service_connection_monitor.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/rabbitmq/rabbitmq_service_consumer_manager.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/rabbitmq/rabbitmq_service_core.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/rabbitmq/rabbitmq_service_producer_manager.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/sentry/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/sentry/sy_sentry.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/services.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/sse/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/sse/event.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/sse/sse.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/synacos/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/synacos/example.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/synacos/example2.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/synacos/feign.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/synacos/feign_client.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/synacos/nacos_client_base.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/synacos/nacos_config_manager.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/synacos/nacos_heartbeat_manager.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/synacos/nacos_service.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/synacos/nacos_service_discovery.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/synacos/nacos_service_registration.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/synacos/param.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/tests/deep_agent_server.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/tests/test_consumer_loss_rootcause.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/tests/test_consumer_recovery.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/tests/test_deep_agent.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/tests/test_dynamic_max_tokens.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/tests/test_email.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/tests/test_encoding_cache.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/tests/test_fix_verification.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/tests/test_mcp_server.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/tests/test_minimax_reasoning.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/tests/test_mq.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/tests/test_oa_login.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/tests/test_real_summarization.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/tests/test_summarization_config.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/tests/test_summarization_real.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/tests/test_summary_leak_e2e.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/tools/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/tools/async_utils.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/tools/docs.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/tools/env.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/tools/merge_headers.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/tools/snowflake.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/tools/syemail.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/tools/timing.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/xxljob/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/xxljob/xxljob_service.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon_python_lib.egg-info/SOURCES.txt +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon_python_lib.egg-info/dependency_links.txt +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon_python_lib.egg-info/entry_points.txt +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon_python_lib.egg-info/requires.txt +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon_python_lib.egg-info/top_level.txt +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/tests/test_asyncio_logging.py +0 -0
- {sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/tests/test_sycli.py +0 -0
{sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/agent/deep_agent.py
RENAMED
|
@@ -49,6 +49,7 @@ from langchain_core.messages import HumanMessage, BaseMessage, AIMessageChunk, A
|
|
|
49
49
|
from langchain_core.tools import BaseTool, tool
|
|
50
50
|
|
|
51
51
|
from sycommon.logging.kafka_log import SYLogger
|
|
52
|
+
from sycommon.tools.snowflake import Snowflake
|
|
52
53
|
from sycommon.llm.get_llm import get_llm
|
|
53
54
|
from sycommon.agent.sandbox.http_sandbox_backend import HTTPSandboxBackend
|
|
54
55
|
from sycommon.agent.sandbox.sandbox_recovery import SandboxRecoveryManager
|
|
@@ -447,6 +448,11 @@ class DeepAgent:
|
|
|
447
448
|
total_input_tokens = 0
|
|
448
449
|
total_output_tokens = 0
|
|
449
450
|
|
|
451
|
+
# ── 设置 chat turn 级 trace_id ──
|
|
452
|
+
# 如果上层(HTTP 中间件等)已设置 trace_id 则沿用,否则生成新的
|
|
453
|
+
_chat_trace_id = SYLogger.get_trace_id() or str(Snowflake.id)
|
|
454
|
+
_trace_token = SYLogger.set_trace_id(_chat_trace_id)
|
|
455
|
+
|
|
450
456
|
try:
|
|
451
457
|
input_state = {"messages": [HumanMessage(content=message)]}
|
|
452
458
|
if rubric:
|
|
@@ -911,6 +917,7 @@ class DeepAgent:
|
|
|
911
917
|
SYLogger.warning(f"[DeepAgent] Token 兜底统计失败: {te}")
|
|
912
918
|
|
|
913
919
|
event = ChatEventBuilder.done()
|
|
920
|
+
event.data["trace_id"] = _chat_trace_id
|
|
914
921
|
if total_input_tokens > 0 or total_output_tokens > 0:
|
|
915
922
|
event.data["input_tokens"] = total_input_tokens
|
|
916
923
|
event.data["output_tokens"] = total_output_tokens
|
|
@@ -936,9 +943,12 @@ class DeepAgent:
|
|
|
936
943
|
await on_event(event)
|
|
937
944
|
yield event
|
|
938
945
|
event = ChatEventBuilder.done()
|
|
946
|
+
event.data["trace_id"] = _chat_trace_id
|
|
939
947
|
if on_event:
|
|
940
948
|
await on_event(event)
|
|
941
949
|
yield event
|
|
950
|
+
finally:
|
|
951
|
+
SYLogger.reset_trace_id(_trace_token)
|
|
942
952
|
|
|
943
953
|
# ============== 内部方法 ==============
|
|
944
954
|
|
|
@@ -1267,16 +1277,31 @@ async def _sync_skill_to_minio(
|
|
|
1267
1277
|
return count
|
|
1268
1278
|
|
|
1269
1279
|
|
|
1280
|
+
async def _get_minio_skill_version(minio_service, skill_name: str) -> str:
|
|
1281
|
+
"""从 MinIO 全局 skills/ 路径下读取技能版本"""
|
|
1282
|
+
try:
|
|
1283
|
+
content = await asyncio.to_thread(
|
|
1284
|
+
minio_service._client.get_object,
|
|
1285
|
+
minio_service._bucket,
|
|
1286
|
+
f"skills/{skill_name}/SKILL.md",
|
|
1287
|
+
)
|
|
1288
|
+
data = content.read()
|
|
1289
|
+
content.close()
|
|
1290
|
+
return _parse_skill_version(data.decode("utf-8"))
|
|
1291
|
+
except Exception:
|
|
1292
|
+
return ""
|
|
1293
|
+
|
|
1294
|
+
|
|
1270
1295
|
async def _sync_skills_to_sandbox(
|
|
1271
1296
|
skills_dir: str,
|
|
1272
1297
|
backend: HTTPSandboxBackend,
|
|
1273
1298
|
) -> None:
|
|
1274
1299
|
"""同步技能目录到沙箱和 MinIO(按版本检查,版本不一致则全量覆盖)
|
|
1275
1300
|
|
|
1276
|
-
|
|
1277
|
-
|
|
1278
|
-
|
|
1279
|
-
|
|
1301
|
+
版本检查优先级:
|
|
1302
|
+
1. 沙箱 /skills/{name}/SKILL.md — 最快,无需额外 IO
|
|
1303
|
+
2. MinIO skills/{name}/SKILL.md — 沙箱为空时(新 Pod / 新沙箱)的兜底
|
|
1304
|
+
版本一致则跳过,不一致或无版本则全量上传到沙箱和 MinIO。
|
|
1280
1305
|
"""
|
|
1281
1306
|
if not os.path.isdir(skills_dir):
|
|
1282
1307
|
return
|
|
@@ -1315,9 +1340,9 @@ async def _sync_skills_to_sandbox(
|
|
|
1315
1340
|
except Exception:
|
|
1316
1341
|
pass
|
|
1317
1342
|
|
|
1318
|
-
#
|
|
1343
|
+
# 比较版本:优先从沙箱读,沙箱无则从 MinIO 读
|
|
1344
|
+
remote_version = ""
|
|
1319
1345
|
if skill_name in existing_dirs:
|
|
1320
|
-
remote_version = ""
|
|
1321
1346
|
try:
|
|
1322
1347
|
remote_content = await backend.aread(
|
|
1323
1348
|
f"/skills/{skill_name}/SKILL.md")
|
|
@@ -1326,14 +1351,26 @@ async def _sync_skills_to_sandbox(
|
|
|
1326
1351
|
except Exception:
|
|
1327
1352
|
pass
|
|
1328
1353
|
|
|
1329
|
-
|
|
1330
|
-
|
|
1331
|
-
|
|
1332
|
-
|
|
1333
|
-
|
|
1334
|
-
|
|
1354
|
+
# 沙箱无版本,尝试从 MinIO 全局 skills/ 读取
|
|
1355
|
+
if not remote_version and minio_service:
|
|
1356
|
+
remote_version = await _get_minio_skill_version(
|
|
1357
|
+
minio_service, skill_name)
|
|
1358
|
+
|
|
1359
|
+
if remote_version and remote_version == local_version:
|
|
1360
|
+
SYLogger.debug(
|
|
1361
|
+
f"[DeepAgent] 技能版本一致,跳过: {skill_name} v{local_version}")
|
|
1362
|
+
backend._synced_skills.add(skill_name)
|
|
1363
|
+
skip_count += 1
|
|
1364
|
+
# 沙箱为空但 MinIO 有(版本一致):只恢复到沙箱,不再上传 MinIO
|
|
1365
|
+
if skill_name not in existing_dirs:
|
|
1366
|
+
await backend.async_sync_dirs(
|
|
1367
|
+
[(src, f"/skills/{skill_name}")])
|
|
1368
|
+
SYLogger.info(
|
|
1369
|
+
f"[DeepAgent] 从本地恢复技能到沙箱: {skill_name} v{local_version}")
|
|
1370
|
+
continue
|
|
1335
1371
|
|
|
1336
|
-
|
|
1372
|
+
# 版本不一致或无版本,删除旧目录后全量覆盖
|
|
1373
|
+
if skill_name in existing_dirs:
|
|
1337
1374
|
try:
|
|
1338
1375
|
await backend.aexecute(f"rm -rf /skills/{skill_name}")
|
|
1339
1376
|
SYLogger.info(
|
{sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/agent/multi_agent_team.py
RENAMED
|
@@ -37,6 +37,7 @@ from langchain_core.messages import HumanMessage, BaseMessage
|
|
|
37
37
|
from langchain_core.tools import BaseTool, tool
|
|
38
38
|
|
|
39
39
|
from sycommon.logging.kafka_log import SYLogger
|
|
40
|
+
from sycommon.tools.snowflake import Snowflake
|
|
40
41
|
from sycommon.llm.get_llm import get_llm
|
|
41
42
|
from sycommon.agent.sandbox.http_sandbox_backend import HTTPSandboxBackend
|
|
42
43
|
from sycommon.tools.env import get_env_var
|
|
@@ -221,6 +222,10 @@ class MultiAgentTeam:
|
|
|
221
222
|
current_agent = self.coordinator_name
|
|
222
223
|
seen_tool_call_ids = set() # 去重:流式分片中同一 tool_call 多次到达
|
|
223
224
|
|
|
225
|
+
# ── 设置 chat turn 级 trace_id ──
|
|
226
|
+
_chat_trace_id = SYLogger.get_trace_id() or str(Snowflake.id)
|
|
227
|
+
_trace_token = SYLogger.set_trace_id(_chat_trace_id)
|
|
228
|
+
|
|
224
229
|
try:
|
|
225
230
|
async for chunk in self._astream_with_retry(
|
|
226
231
|
{"messages": [HumanMessage(content=message)]},
|
|
@@ -420,6 +425,7 @@ class MultiAgentTeam:
|
|
|
420
425
|
SYLogger.debug(f"[ai_message] {repr(ai_chunk_buffer[:100])}...")
|
|
421
426
|
|
|
422
427
|
event = ChatEventBuilder.done()
|
|
428
|
+
event.data["trace_id"] = _chat_trace_id
|
|
423
429
|
if on_event:
|
|
424
430
|
await on_event(event)
|
|
425
431
|
yield event
|
|
@@ -437,9 +443,12 @@ class MultiAgentTeam:
|
|
|
437
443
|
await on_event(event)
|
|
438
444
|
yield event
|
|
439
445
|
event = ChatEventBuilder.done()
|
|
446
|
+
event.data["trace_id"] = _chat_trace_id
|
|
440
447
|
if on_event:
|
|
441
448
|
await on_event(event)
|
|
442
449
|
yield event
|
|
450
|
+
finally:
|
|
451
|
+
SYLogger.reset_trace_id(_trace_token)
|
|
443
452
|
|
|
444
453
|
# ============== 内部方法 ==============
|
|
445
454
|
|
{sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycommon/auth/wecom_ldap_service.py
RENAMED
|
@@ -73,7 +73,8 @@ class LDAPFullUser(BaseModel):
|
|
|
73
73
|
class WeComLDAPUser(BaseModel):
|
|
74
74
|
"""企微-LDAP 关联用户(最终返回结果)"""
|
|
75
75
|
|
|
76
|
-
wecom_userid: str # 企微 userid
|
|
76
|
+
wecom_userid: str # 企微 userid(明文工号,如 "0633")
|
|
77
|
+
employee_id: Optional[str] = None # 员工工号(与 wecom_userid 同值,语义更明确)
|
|
77
78
|
wecom_name: str # 企微中文名
|
|
78
79
|
wecom_english_name: Optional[str] = None # 企微英文名
|
|
79
80
|
wecom_departments: List[str] = [] # 企微部门列表
|
|
@@ -603,8 +604,9 @@ class WeComLDAPService(metaclass=SingletonMeta):
|
|
|
603
604
|
|
|
604
605
|
# 3. 合并返回
|
|
605
606
|
result = await self._build_wecom_ldap_user(user_data, ldap_index)
|
|
606
|
-
#
|
|
607
|
-
result.wecom_userid =
|
|
607
|
+
# 保留解码后的明文 userid(工号),而非原始密文
|
|
608
|
+
result.wecom_userid = decoded_userid
|
|
609
|
+
result.employee_id = decoded_userid
|
|
608
610
|
return result
|
|
609
611
|
|
|
610
612
|
async def get_all_users(self) -> List[WeComLDAPUser]:
|
|
@@ -623,6 +625,7 @@ class WeComLDAPService(metaclass=SingletonMeta):
|
|
|
623
625
|
results = []
|
|
624
626
|
for u in wecom_users:
|
|
625
627
|
result = await self._build_wecom_ldap_user(u, ldap_index)
|
|
628
|
+
result.employee_id = result.wecom_userid
|
|
626
629
|
results.append(result)
|
|
627
630
|
|
|
628
631
|
matched = sum(1 for r in results if r.matched)
|
|
@@ -671,3 +674,137 @@ class WeComLDAPService(metaclass=SingletonMeta):
|
|
|
671
674
|
if user.matched and user.ldap_user:
|
|
672
675
|
return user.ldap_user.username
|
|
673
676
|
return None
|
|
677
|
+
|
|
678
|
+
# ─── Redis 映射缓存 ───
|
|
679
|
+
|
|
680
|
+
# Redis key 前缀(保持与旧版 digital_work 命名兼容)
|
|
681
|
+
_UID_MAP_PREFIX = "digital_work:wecom_uid_map:"
|
|
682
|
+
_LDAP_TO_WECOM_PREFIX = "digital_work:ldap_to_wecom:"
|
|
683
|
+
_EMPLOYEE_ID_PREFIX = "digital_work:wecom_employee_id:"
|
|
684
|
+
_MAP_TTL = 7 * 24 * 3600 # 7 天
|
|
685
|
+
|
|
686
|
+
@staticmethod
|
|
687
|
+
def _get_redis():
|
|
688
|
+
"""获取 RedisService(懒加载)"""
|
|
689
|
+
from sycommon.database.redis_service import RedisService
|
|
690
|
+
return RedisService
|
|
691
|
+
|
|
692
|
+
async def _get_cached_mapping(self, wecom_userid: str) -> Optional[str]:
|
|
693
|
+
"""从 Redis 读取 wecom_userid -> unified_id 映射"""
|
|
694
|
+
try:
|
|
695
|
+
rs = self._get_redis()
|
|
696
|
+
val = await rs.get(f"{self._UID_MAP_PREFIX}{wecom_userid}")
|
|
697
|
+
if val:
|
|
698
|
+
return val
|
|
699
|
+
except Exception:
|
|
700
|
+
pass
|
|
701
|
+
return None
|
|
702
|
+
|
|
703
|
+
async def _set_cached_mapping(self, wecom_userid: str, unified_id: str):
|
|
704
|
+
"""将 wecom_userid <-> unified_id 双向映射写入 Redis,同时保存工号"""
|
|
705
|
+
try:
|
|
706
|
+
rs = self._get_redis()
|
|
707
|
+
# 正向: wecom_userid -> unified_id (LDAP sAMAccountName)
|
|
708
|
+
await rs.set(
|
|
709
|
+
f"{self._UID_MAP_PREFIX}{wecom_userid}",
|
|
710
|
+
unified_id,
|
|
711
|
+
ex=self._MAP_TTL,
|
|
712
|
+
)
|
|
713
|
+
# 反向: unified_id -> wecom_userid(用于定时任务等主动推送场景)
|
|
714
|
+
await rs.set(
|
|
715
|
+
f"{self._LDAP_TO_WECOM_PREFIX}{unified_id}",
|
|
716
|
+
wecom_userid,
|
|
717
|
+
ex=self._MAP_TTL,
|
|
718
|
+
)
|
|
719
|
+
# 员工工号: unified_id -> wecom_userid(即工号,如 "0633")
|
|
720
|
+
await rs.set(
|
|
721
|
+
f"{self._EMPLOYEE_ID_PREFIX}{unified_id}",
|
|
722
|
+
wecom_userid,
|
|
723
|
+
ex=self._MAP_TTL,
|
|
724
|
+
)
|
|
725
|
+
except Exception as e:
|
|
726
|
+
SYLogger.warning(f"[WeComLDAP] 缓存映射到 Redis 失败: {e}")
|
|
727
|
+
|
|
728
|
+
async def resolve_unified_user_id(self, wecom_userid: str) -> str:
|
|
729
|
+
"""将企微 userid 解析为统一 user_id(LDAP sAMAccountName)
|
|
730
|
+
|
|
731
|
+
优先从 Redis 缓存读取,缓存未命中时查 LDAP 并写入 Redis。
|
|
732
|
+
匹配到 LDAP 返回 sAMAccountName,否则直接使用企微 userid。
|
|
733
|
+
|
|
734
|
+
Args:
|
|
735
|
+
wecom_userid: 企微用户ID(如 "0633"、密文 open_userid)
|
|
736
|
+
|
|
737
|
+
Returns:
|
|
738
|
+
统一 user_id(小写,如 "osulcode.xiao")
|
|
739
|
+
"""
|
|
740
|
+
# 1. 查 Redis 缓存
|
|
741
|
+
cached = await self._get_cached_mapping(wecom_userid)
|
|
742
|
+
if cached:
|
|
743
|
+
return cached
|
|
744
|
+
|
|
745
|
+
# 2. 查企微 + LDAP
|
|
746
|
+
unified_id = wecom_userid
|
|
747
|
+
employee_id = wecom_userid # 默认用工号就是原始 userid
|
|
748
|
+
try:
|
|
749
|
+
result = await self.get_user_info(wecom_userid)
|
|
750
|
+
employee_id = result.wecom_userid # get_user_info 返回解码后的明文工号
|
|
751
|
+
if result.matched and result.ldap_user and result.ldap_user.username:
|
|
752
|
+
unified_id = result.ldap_user.username
|
|
753
|
+
SYLogger.info(
|
|
754
|
+
f"[WeComLDAP] 用户映射: wecom={wecom_userid} -> ldap={unified_id}")
|
|
755
|
+
else:
|
|
756
|
+
SYLogger.info(
|
|
757
|
+
f"[WeComLDAP] 用户映射: wecom={wecom_userid} -> 未匹配LDAP,回退={unified_id}")
|
|
758
|
+
except Exception as e:
|
|
759
|
+
SYLogger.warning(
|
|
760
|
+
f"[WeComLDAP] 解析统一 user_id 失败: wecom_userid={wecom_userid}, error={e}")
|
|
761
|
+
|
|
762
|
+
# 3. 写入 Redis 缓存(统一小写)
|
|
763
|
+
unified_id = unified_id.lower().replace(" ", "")
|
|
764
|
+
await self._set_cached_mapping(employee_id, unified_id)
|
|
765
|
+
|
|
766
|
+
return unified_id
|
|
767
|
+
|
|
768
|
+
async def get_employee_id(self, unified_id: str) -> Optional[str]:
|
|
769
|
+
"""从 Redis 获取企微员工工号
|
|
770
|
+
|
|
771
|
+
Args:
|
|
772
|
+
unified_id: 统一用户 ID(LDAP sAMAccountName,如 "osulcode.xiao")
|
|
773
|
+
|
|
774
|
+
Returns:
|
|
775
|
+
员工工号(如 "0633"),未找到返回 None
|
|
776
|
+
"""
|
|
777
|
+
try:
|
|
778
|
+
rs = self._get_redis()
|
|
779
|
+
uid = unified_id.lower().replace(" ", "")
|
|
780
|
+
val = await rs.get(f"{self._EMPLOYEE_ID_PREFIX}{uid}")
|
|
781
|
+
if val:
|
|
782
|
+
return val
|
|
783
|
+
except Exception:
|
|
784
|
+
pass
|
|
785
|
+
return None
|
|
786
|
+
|
|
787
|
+
async def batch_set_uid_mapping(self, mapping: dict[str, str]):
|
|
788
|
+
"""批量写入企微-LDAP 映射到 Redis(pipeline 优化,含反向映射和工号)
|
|
789
|
+
|
|
790
|
+
Args:
|
|
791
|
+
mapping: {wecom_userid: unified_id, ...}
|
|
792
|
+
"""
|
|
793
|
+
if not mapping:
|
|
794
|
+
return
|
|
795
|
+
try:
|
|
796
|
+
rs = self._get_redis()
|
|
797
|
+
client = rs.get_client()
|
|
798
|
+
async with client.pipeline(transaction=True) as pipe:
|
|
799
|
+
for wecom_userid, unified_id in mapping.items():
|
|
800
|
+
uid = unified_id.lower().replace(" ", "")
|
|
801
|
+
# 正向
|
|
802
|
+
pipe.set(f"{self._UID_MAP_PREFIX}{wecom_userid}", uid, ex=self._MAP_TTL)
|
|
803
|
+
# 反向
|
|
804
|
+
pipe.set(f"{self._LDAP_TO_WECOM_PREFIX}{uid}", wecom_userid, ex=self._MAP_TTL)
|
|
805
|
+
# 员工工号
|
|
806
|
+
pipe.set(f"{self._EMPLOYEE_ID_PREFIX}{uid}", wecom_userid, ex=self._MAP_TTL)
|
|
807
|
+
await pipe.execute()
|
|
808
|
+
logging.info(f"[WeComLDAP] 批量写入 {len(mapping)} 条映射到 Redis")
|
|
809
|
+
except Exception as e:
|
|
810
|
+
SYLogger.warning(f"[WeComLDAP] 批量缓存映射到 Redis 失败: {e}")
|
|
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.5a42 → sycommon_python_lib-0.2.6a1}/src/command/templates/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/command/templates/agent/__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
|
{sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/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.5a42 → sycommon_python_lib-0.2.6a1}/src/command/templates/base/.env.tpl
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/command/templates/base/__init__.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/command/templates/base/app.py.tpl
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/command/templates/base/app.yaml.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.5a42 → sycommon_python_lib-0.2.6a1}/src/command/templates/cli/README.md.tpl
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/command/templates/cli/__init__.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/command/templates/cli/app.py.tpl
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/command/templates/web/README.md.tpl
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/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.5a42 → sycommon_python_lib-0.2.6a1}/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.5a42 → sycommon_python_lib-0.2.6a1}/src/sycli/cdp/capabilities/__init__.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycli/cdp/capabilities/console.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycli/cdp/capabilities/dom.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycli/commands/create_cmd.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycli/commands/evaluate_cmd.py
RENAMED
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycli/commands/memory_cmd.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycli/commands/resume_cmd.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/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.5a42 → sycommon_python_lib-0.2.6a1}/src/sycli/core/git_integration.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.5a42 → sycommon_python_lib-0.2.6a1}/src/sycli/evaluate/api_evaluator.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|