sycommon-python-lib 0.2.7a42__tar.gz → 0.2.7a44__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.7a42 → sycommon_python_lib-0.2.7a44}/PKG-INFO +5 -5
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/pyproject.toml +5 -5
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/agent/deep_agent.py +21 -1
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/agent/middleware/skill_api_whitelist.py +4 -4
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/agent/middleware/skill_write_guard.py +16 -7
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/middleware/traceid.py +84 -45
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon_python_lib.egg-info/PKG-INFO +5 -5
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon_python_lib.egg-info/requires.txt +4 -4
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/README.md +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/setup.cfg +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/command/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/command/cli.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/command/core/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/command/core/console.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/command/core/models.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/command/core/project.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/command/core/utils.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/command/templates/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/command/templates/agent/README.md.tpl +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/command/templates/agent/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/command/templates/agent/agent/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/command/templates/agent/agent/main_agent.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/command/templates/agent/agent/nodes/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/command/templates/agent/agent/nodes/example_node.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/command/templates/agent/agent/states/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/command/templates/agent/agent/states/agent_state.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/command/templates/agent/api/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/command/templates/agent/api/query.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/command/templates/agent/api/sse/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/command/templates/agent/api/sse/agent.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/command/templates/agent/app.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/command/templates/agent/client/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/command/templates/agent/db/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/command/templates/agent/db/model/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/command/templates/agent/db/model/entity.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/command/templates/agent/db/service.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/command/templates/agent/model/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/command/templates/agent/model/parse.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/command/templates/agent/tools/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/command/templates/agent/tools/mq.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/command/templates/base/.env.tpl +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/command/templates/base/.gitignore.tpl +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/command/templates/base/Dockerfile.tpl +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/command/templates/base/README.md.tpl +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/command/templates/base/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/command/templates/base/app.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/command/templates/base/app.yaml.tpl +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/command/templates/base/client/FileServiceClient.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/command/templates/base/client/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/command/templates/base/model/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/command/templates/base/model/file_info.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/command/templates/base/requirements.txt.tpl +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/command/templates/cli/README.md.tpl +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/command/templates/cli/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/command/templates/cli/app.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/command/templates/cli/commands/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/command/templates/cli/commands/hello.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/command/templates/cli/pyproject.toml.tpl +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/command/templates/cli/tools/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/command/templates/web/README.md.tpl +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/command/templates/web/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/command/templates/web/api/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/command/templates/web/api/echo.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/command/templates/web/api/sse/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/command/templates/web/api/sse/echo.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/command/templates/web/app.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/command/templates/web/client/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/command/templates/web/model/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/command/templates/web/tools/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/command/templates/web/tools/mq.py.tpl +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/nexus/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycli/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycli/__main__.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycli/acp/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycli/acp/config.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycli/acp/executor.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycli/acp/registry.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycli/acp/server.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycli/agents/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycli/agents/factory.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycli/agents/prompts.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycli/cdp/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycli/cdp/browser.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycli/cdp/capabilities/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycli/cdp/capabilities/console.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycli/cdp/capabilities/dom.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycli/cdp/capabilities/network.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycli/cdp/capabilities/page_errors.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycli/cdp/capabilities/performance.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycli/cdp/capabilities/screenshot.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycli/cdp/client.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycli/cdp/protocol.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycli/cdp/repl.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycli/cli.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycli/commands/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycli/commands/acp_cmd.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycli/commands/cdp_cmd.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycli/commands/chat_cmd.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycli/commands/create_cmd.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycli/commands/evaluate_cmd.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycli/commands/init_cmd.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycli/commands/memory_cmd.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycli/commands/resume_cmd.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycli/commands/rollback_cmd.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycli/commands/run_cmd.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycli/core/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycli/core/backend.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycli/core/config.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycli/core/display.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycli/core/git_integration.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycli/core/llm.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycli/core/state.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycli/evaluate/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycli/evaluate/api_evaluator.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycli/memory/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycli/memory/compressor.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycli/memory/full.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycli/memory/hot.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycli/memory/manager.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycli/memory/warm.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycli/mode/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycli/mode/create.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycli/mode/optimize.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycli/models/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycli/models/config_models.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycli/rl/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycli/rl/baseline_tests.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycli/rl/checkpoint.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycli/rl/convergence.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycli/rl/diagnosis.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycli/rl/engine.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycli/rl/environment.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycli/rl/experience.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycli/rl/harness_prompts.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycli/rl/history.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycli/rl/optimization_logger.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycli/rl/pre_validation.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycli/rl/reward.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycli/rl/strategy_bandit.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycli/rl/strategy_generator.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycli/rl/strategy_prompts.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycli/simple_chat_agent.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycli/skills/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/agent/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/agent/acp/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/agent/acp/client.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/agent/acp/fetch.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/agent/acp/ssh_init.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/agent/acp/tool.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/agent/agent_manager.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/agent/chat_events.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/agent/mcp/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/agent/mcp/models.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/agent/mcp/tool_loader.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/agent/middleware/sandbox_path_guard.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/agent/middleware/sensitive_guard.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/agent/middleware/sitecustomize.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/agent/middleware/skill_wl_check.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/agent/multi_agent_team.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/agent/resume_compactor.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/agent/sandbox/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/agent/sandbox/consistent_hash.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/agent/sandbox/file_ops.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/agent/sandbox/http_sandbox_backend.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/agent/sandbox/minio_sync.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/agent/sandbox/sandbox_pool.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/agent/sandbox/sandbox_recovery.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/agent/sandbox/session.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/agent/summarization_utils.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/auth/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/auth/ldap_service.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/auth/oa_cache.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/auth/oa_crypto.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/auth/oa_service.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/auth/wecom_ldap_service.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/config/ACPAgentConfig.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/config/Config.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/config/DatabaseConfig.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/config/ElasticsearchConfig.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/config/EmbeddingConfig.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/config/LLMConfig.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/config/LangfuseConfig.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/config/MQConfig.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/config/PgConfig.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/config/RedisConfig.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/config/RerankerConfig.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/config/SentryConfig.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/config/SkillApiWhitelistConfig.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/config/XxlJobConfig.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/config/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/config/config_change_notifier.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/database/async_base_db_service.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/database/async_database_service.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/database/base_db_service.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/database/database_service.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/database/elasticsearch_service.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/database/pg_checkpoint_service.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/database/redis_service.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/database/resilient_pg_saver.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/database/token_usage_db_service.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/health/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/health/health_check.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/health/metrics.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/health/ping.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/heartbeat_process/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/heartbeat_process/heartbeat_config.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/heartbeat_process/heartbeat_process_manager.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/heartbeat_process/heartbeat_process_worker.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/llm/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/llm/embedding.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/llm/get_llm.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/llm/llm_logger.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/llm/llm_tokens.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/llm/llm_with_token_tracking.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/llm/native_with_fallback_runnable.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/llm/output_fixing_runnable.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/llm/struct_token.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/llm/sy_langfuse.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/llm/tiktoken_cache/9b5ad71b2ce5302211f9c61530b329a4922fc6a4 +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/llm/tiktoken_cache/fb374d419588a4632f3f557e76b4b70aebbca790 +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/llm/token_usage_es_service.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/llm/token_usage_mysql_service.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/llm/token_utils.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/llm/usage_token.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/logging/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/logging/async_sql_logger.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/logging/kafka_log.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/logging/log_masker.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/logging/logger_levels.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/logging/logger_wrapper.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/logging/process_logger.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/logging/sql_logger.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/mcp_server/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/mcp_server/server.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/middleware/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/middleware/context.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/middleware/cors.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/middleware/docs.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/middleware/exception.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/middleware/middleware.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/middleware/monitor_memory.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/middleware/mq.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/middleware/sandbox.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/middleware/timeout.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/middleware/token_tracking.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/middleware/tool_result_truncation.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/models/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/models/base_http.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/models/log.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/models/mcp_server_config.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/models/mqlistener_config.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/models/mqmsg_model.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/models/mqsend_config.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/models/sandbox.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/models/sso_user.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/models/token_usage.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/models/token_usage_mysql.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/models/xxljob_handler_config.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/notice/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/notice/uvicorn_monitor.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/notice/wecom_message.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/rabbitmq/process_pool_consumer.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/rabbitmq/rabbitmq_client.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/rabbitmq/rabbitmq_pool.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/rabbitmq/rabbitmq_service.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/rabbitmq/rabbitmq_service_client_manager.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/rabbitmq/rabbitmq_service_connection_monitor.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/rabbitmq/rabbitmq_service_consumer_manager.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/rabbitmq/rabbitmq_service_core.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/rabbitmq/rabbitmq_service_producer_manager.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/sentry/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/sentry/sy_sentry.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/services.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/sse/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/sse/event.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/sse/sse.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/synacos/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/synacos/example.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/synacos/example2.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/synacos/feign.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/synacos/feign_client.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/synacos/nacos_client_base.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/synacos/nacos_config_manager.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/synacos/nacos_heartbeat_manager.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/synacos/nacos_service.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/synacos/nacos_service_discovery.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/synacos/nacos_service_registration.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/synacos/param.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/tests/deep_agent_server.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/tests/test_consistent_hash.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/tests/test_consumer_loss_rootcause.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/tests/test_consumer_recovery.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/tests/test_deep_agent.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/tests/test_dynamic_max_tokens.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/tests/test_email.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/tests/test_encoding_cache.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/tests/test_fix_verification.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/tests/test_mcp_server.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/tests/test_minimax_reasoning.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/tests/test_mq.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/tests/test_oa_login.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/tests/test_queue_priority_fallback.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/tests/test_real_summarization.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/tests/test_summarization_config.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/tests/test_summarization_real.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/tests/test_summary_leak_e2e.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/tests/test_upgrade_aio_pika.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/tests/test_upgrade_langgraph_stream.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/tests/test_upgrade_verification.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/tools/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/tools/async_utils.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/tools/docs.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/tools/env.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/tools/merge_headers.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/tools/snowflake.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/tools/syemail.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/tools/timing.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/xxljob/__init__.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/xxljob/xxljob_service.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon_python_lib.egg-info/SOURCES.txt +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon_python_lib.egg-info/dependency_links.txt +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon_python_lib.egg-info/entry_points.txt +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon_python_lib.egg-info/top_level.txt +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/tests/test_acp_tool.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/tests/test_asyncio_logging.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/tests/test_config_change_notifier.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/tests/test_hotreload_snapshot.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/tests/test_llm_apikey_contextvar.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/tests/test_log_masker.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/tests/test_resilient_pg_saver.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/tests/test_sandbox_path_guard.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/tests/test_sensitive_guard.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/tests/test_simple_chat_agent.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/tests/test_skill_regex_upgrade.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/tests/test_skill_write_guard.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/tests/test_sycli.py +0 -0
- {sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/tests/test_sync_skills_to_sandbox.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: sycommon-python-lib
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.7a44
|
|
4
4
|
Summary: Add your description here
|
|
5
5
|
Requires-Python: >=3.11
|
|
6
6
|
Description-Content-Type: text/markdown
|
|
@@ -11,16 +11,16 @@ Requires-Dist: anyio==4.14.2
|
|
|
11
11
|
Requires-Dist: decorator==5.3.1
|
|
12
12
|
Requires-Dist: deepagents==0.6.12
|
|
13
13
|
Requires-Dist: elasticsearch==9.4.1
|
|
14
|
-
Requires-Dist: fastapi==0.139.
|
|
14
|
+
Requires-Dist: fastapi==0.139.2
|
|
15
15
|
Requires-Dist: jinja2==3.1.6
|
|
16
16
|
Requires-Dist: kafka-python==3.0.8
|
|
17
|
-
Requires-Dist: langchain==1.3.
|
|
17
|
+
Requires-Dist: langchain==1.3.14
|
|
18
18
|
Requires-Dist: langchain-core==1.4.9
|
|
19
19
|
Requires-Dist: langchain-openai==1.3.5
|
|
20
20
|
Requires-Dist: langfuse==4.14.0
|
|
21
21
|
Requires-Dist: langgraph==1.2.9
|
|
22
22
|
Requires-Dist: langgraph-checkpoint-postgres==3.1.0
|
|
23
|
-
Requires-Dist: langgraph-checkpoint-redis==0.5.
|
|
23
|
+
Requires-Dist: langgraph-checkpoint-redis==0.5.1
|
|
24
24
|
Requires-Dist: ldap3==2.9.1
|
|
25
25
|
Requires-Dist: loguru==0.7.3
|
|
26
26
|
Requires-Dist: mysql-connector-python==9.7.0
|
|
@@ -32,7 +32,7 @@ Requires-Dist: python-dotenv==1.2.2
|
|
|
32
32
|
Requires-Dist: python-multipart==0.0.32
|
|
33
33
|
Requires-Dist: pyyaml==6.0.3
|
|
34
34
|
Requires-Dist: redis==7.4.0
|
|
35
|
-
Requires-Dist: sentry-sdk[fastapi]==2.
|
|
35
|
+
Requires-Dist: sentry-sdk[fastapi]==2.66.0
|
|
36
36
|
Requires-Dist: sqlalchemy[asyncio]==2.0.51
|
|
37
37
|
Requires-Dist: starlette[full]==1.3.1
|
|
38
38
|
Requires-Dist: tiktoken==0.13.0
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "sycommon-python-lib"
|
|
3
|
-
version = "0.2.
|
|
3
|
+
version = "0.2.7a44"
|
|
4
4
|
description = "Add your description here"
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
requires-python = ">=3.11"
|
|
@@ -12,16 +12,16 @@ dependencies = [
|
|
|
12
12
|
"decorator==5.3.1",
|
|
13
13
|
"deepagents==0.6.12",
|
|
14
14
|
"elasticsearch==9.4.1",
|
|
15
|
-
"fastapi==0.139.
|
|
15
|
+
"fastapi==0.139.2",
|
|
16
16
|
"jinja2==3.1.6",
|
|
17
17
|
"kafka-python==3.0.8",
|
|
18
|
-
"langchain==1.3.
|
|
18
|
+
"langchain==1.3.14",
|
|
19
19
|
"langchain-core==1.4.9",
|
|
20
20
|
"langchain-openai==1.3.5",
|
|
21
21
|
"langfuse==4.14.0",
|
|
22
22
|
"langgraph==1.2.9",
|
|
23
23
|
"langgraph-checkpoint-postgres==3.1.0",
|
|
24
|
-
"langgraph-checkpoint-redis==0.5.
|
|
24
|
+
"langgraph-checkpoint-redis==0.5.1",
|
|
25
25
|
"ldap3==2.9.1",
|
|
26
26
|
"loguru==0.7.3",
|
|
27
27
|
"mysql-connector-python==9.7.0",
|
|
@@ -33,7 +33,7 @@ dependencies = [
|
|
|
33
33
|
"python-multipart==0.0.32",
|
|
34
34
|
"pyyaml==6.0.3",
|
|
35
35
|
"redis==7.4.0",
|
|
36
|
-
"sentry-sdk[fastapi]==2.
|
|
36
|
+
"sentry-sdk[fastapi]==2.66.0",
|
|
37
37
|
"sqlalchemy[asyncio]==2.0.51",
|
|
38
38
|
"starlette[full]==1.3.1",
|
|
39
39
|
"tiktoken==0.13.0",
|
{sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/agent/deep_agent.py
RENAMED
|
@@ -398,6 +398,13 @@ class AgentConfig(BaseModel):
|
|
|
398
398
|
# user 技能:标记启用沙箱 /skills/user(可写,内容由 MinIO 按 user 灌入);
|
|
399
399
|
# 本地兜底路径仅当目录存在时用于开发期同步,生产期为 None。
|
|
400
400
|
user_skills_dir: Optional[str] = None
|
|
401
|
+
# 接口专属技能:本地仓库目录路径(如 <repo>/skills/shengye-platform/oa),
|
|
402
|
+
# 同步到沙箱 /skills/<scoped_skills_scope>(只读),并以独立 source 追加到
|
|
403
|
+
# deepagents SkillsMiddleware,优先级高于 system/user(后 source 覆盖先 source)。
|
|
404
|
+
# 使用方:按接口路由在服务端硬编码 scope,前端不可改。
|
|
405
|
+
scoped_skills_dir: Optional[str] = None
|
|
406
|
+
# 沙箱挂载点 scope,如 "shengye-platform/oa"。仅当 scoped_skills_dir 非空时生效。
|
|
407
|
+
scoped_skills_scope: Optional[str] = None
|
|
401
408
|
memory_dir: Optional[str] = None
|
|
402
409
|
|
|
403
410
|
@property
|
|
@@ -1278,6 +1285,12 @@ async def create_deep_agent(
|
|
|
1278
1285
|
# 沙箱 skills 双层结构:/skills/system(只读,仓库源)+ /skills/user(可写,MinIO 按 user 灌入)
|
|
1279
1286
|
system_path = "/skills/system" if config.system_skills_dir else None
|
|
1280
1287
|
user_path = "/skills/user" if config.user_skills_dir else None
|
|
1288
|
+
# 接口专属技能挂载点(如 "/skills/shengye-platform/oa"),仅当 dir+scope 同时非空才启用
|
|
1289
|
+
scoped_path = (
|
|
1290
|
+
f"/skills/{config.scoped_skills_scope}"
|
|
1291
|
+
if config.scoped_skills_dir and config.scoped_skills_scope
|
|
1292
|
+
else None
|
|
1293
|
+
)
|
|
1281
1294
|
memory_path = "/memory/AGENTS.md" if config.memory_dir else None
|
|
1282
1295
|
|
|
1283
1296
|
# 同步 system 技能到沙箱(按版本检查,已同步则跳过)+ chmod 只读保护
|
|
@@ -1289,6 +1302,11 @@ async def create_deep_agent(
|
|
|
1289
1302
|
await _sync_skills_to_sandbox(config.system_skills_dir, sandbox_backend,
|
|
1290
1303
|
sandbox_dest="/skills/system", chmod_readonly=True)
|
|
1291
1304
|
|
|
1305
|
+
# 同步接口专属技能到沙箱(只读)。与 system 同一套 version 感知增量同步机制。
|
|
1306
|
+
if config.scoped_skills_dir and config.scoped_skills_scope and sandbox_backend:
|
|
1307
|
+
await _sync_skills_to_sandbox(config.scoped_skills_dir, sandbox_backend,
|
|
1308
|
+
sandbox_dest=scoped_path, chmod_readonly=True)
|
|
1309
|
+
|
|
1292
1310
|
# 创建 agent
|
|
1293
1311
|
from deepagents import create_deep_agent as _create_deep_agent
|
|
1294
1312
|
from deepagents import RubricMiddleware
|
|
@@ -1359,12 +1377,14 @@ async def create_deep_agent(
|
|
|
1359
1377
|
"middleware": middleware_list,
|
|
1360
1378
|
}
|
|
1361
1379
|
# deepagents SkillsMiddleware 支持多 source (path, label),后 source 覆盖先 source
|
|
1362
|
-
# → user 在后,user 同名技能优先于 system
|
|
1380
|
+
# → user 在后,user 同名技能优先于 system;scoped 放最后,接口专属技能优先级最高
|
|
1363
1381
|
_sources = []
|
|
1364
1382
|
if system_path:
|
|
1365
1383
|
_sources.append((system_path, "系统"))
|
|
1366
1384
|
if user_path:
|
|
1367
1385
|
_sources.append((user_path, "用户"))
|
|
1386
|
+
if scoped_path:
|
|
1387
|
+
_sources.append((scoped_path, "接口"))
|
|
1368
1388
|
if _sources:
|
|
1369
1389
|
agent_kwargs["skills"] = _sources
|
|
1370
1390
|
if memory_path:
|
|
@@ -35,11 +35,11 @@ from sycommon.logging.kafka_log import SYLogger
|
|
|
35
35
|
|
|
36
36
|
# 命令路径形如 skills/system/sy-oa-skill/workflow-todo/scripts/x.py
|
|
37
37
|
# skills/user/sy-oa-skill/SKILL.md
|
|
38
|
-
# 拆为 system/user
|
|
39
|
-
# (如 sy-oa-skill),配合 SkillApiWhitelist
|
|
40
|
-
# (?<![\w]) 否定左查找:要求 skills 前不是单词字符,避免误匹配 myskills/。
|
|
38
|
+
# 拆为 system/user/shengye-platform 多层后,顶层段是 system|user|shengye-platform,
|
|
39
|
+
# 需跳过它取【第二段】作域级技能名(如 sy-oa-skill / oa),配合 SkillApiWhitelist
|
|
40
|
+
# 按顶级域配置。(?<![\w]) 否定左查找:要求 skills 前不是单词字符,避免误匹配 myskills/。
|
|
41
41
|
_SKILL_TOP_RE = re.compile(
|
|
42
|
-
r'(?<![\w])skills/(?:system|user)/([A-Za-z0-9_\-]+)(?:/|$)')
|
|
42
|
+
r'(?<![\w])skills/(?:system|user|shengye-platform)/([A-Za-z0-9_\-]+)(?:/|$)')
|
|
43
43
|
|
|
44
44
|
# BASE_URL 占位符 ${VAR}
|
|
45
45
|
_PLACEHOLDER_RE = re.compile(r'\$\{([A-Z_][A-Z0-9_]*)\}')
|
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
"""系统技能只读守卫中间件。
|
|
2
2
|
|
|
3
|
-
拦 write_file / edit_file / execute
|
|
4
|
-
返回 error ToolMessage(不调 handler,短路)
|
|
3
|
+
拦 write_file / edit_file / execute 三类写操作对以下只读路径的命中,
|
|
4
|
+
返回 error ToolMessage(不调 handler,短路):
|
|
5
|
+
- /skills/system —— 全员共享系统技能
|
|
6
|
+
- /skills/shengye-platform —— 接口专属技能(按接口 scope 挂载)
|
|
5
7
|
|
|
6
|
-
|
|
8
|
+
/skills/user 不拦。
|
|
9
|
+
|
|
10
|
+
双层防护之一(另一层是沙箱 chmod -R 555 对应目录):
|
|
7
11
|
本中间件负责给 agent 清晰错误反馈并 fail-closed,chmod 负责兜底防 shell 绕过。
|
|
8
12
|
"""
|
|
9
13
|
import re
|
|
@@ -11,8 +15,10 @@ from langchain.agents.middleware.types import AgentMiddleware
|
|
|
11
15
|
from langchain_core.messages import ToolMessage
|
|
12
16
|
from langgraph.prebuilt.tool_node import ToolCallRequest
|
|
13
17
|
|
|
14
|
-
# /skills/system 或 /skills/
|
|
15
|
-
|
|
18
|
+
# /skills/system 或 /skills/shengye-platform 及其子路径
|
|
19
|
+
# (行尾/引号/空白/斜杠均可作边界,防匹配 /skills/systembackup 这类同前缀异名)
|
|
20
|
+
_PROTECTED_PATH_RE = re.compile(
|
|
21
|
+
r'/skills/(?:system|shengye-platform)(?:/|\s|"|\'|$)')
|
|
16
22
|
|
|
17
23
|
# 写动作动词(命令首或分号/管道/空格后)
|
|
18
24
|
_WRITE_VERB_RE = re.compile(
|
|
@@ -21,14 +27,17 @@ _WRITE_VERB_RE = re.compile(
|
|
|
21
27
|
_REDIRECT_RE = re.compile(r'>>?')
|
|
22
28
|
|
|
23
29
|
_WRITE_TOOLS = {"write_file", "edit_file"}
|
|
24
|
-
_DENIED_MSG = ("Error:
|
|
30
|
+
_DENIED_MSG = ("Error: 系统/接口技能 /skills/system 与 /skills/shengye-platform 为只读,禁止写入/修改/删除。"
|
|
25
31
|
"读取(read_file)和执行脚本(python ...)不受限,直接用即可,不要把脚本复制到工作目录再跑。"
|
|
26
32
|
"如需修改脚本本身,复制到 /skills/user/ 后编辑。")
|
|
27
33
|
|
|
34
|
+
# 前缀列表(用于 _is_protected_path 的字符串判定)
|
|
35
|
+
_PROTECTED_PREFIXES = ("/skills/system", "/skills/shengye-platform")
|
|
36
|
+
|
|
28
37
|
|
|
29
38
|
def _is_protected_path(p: str) -> bool:
|
|
30
39
|
s = (p or "").strip().replace("\\", "/")
|
|
31
|
-
return s ==
|
|
40
|
+
return any(s == prefix or s.startswith(prefix + "/") for prefix in _PROTECTED_PREFIXES)
|
|
32
41
|
|
|
33
42
|
|
|
34
43
|
def _command_writes_system(cmd: str) -> bool:
|
{sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycommon/middleware/traceid.py
RENAMED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import json
|
|
2
|
+
import os
|
|
2
3
|
import re
|
|
3
4
|
from typing import Dict, Any
|
|
4
5
|
from fastapi import Request, Response
|
|
@@ -6,6 +7,11 @@ from sycommon.logging.kafka_log import SYLogger
|
|
|
6
7
|
from sycommon.tools.merge_headers import merge_headers
|
|
7
8
|
from sycommon.tools.snowflake import Snowflake
|
|
8
9
|
|
|
10
|
+
# 🔑 OOM 防护:响应体聚合/重写阈值。超过此大小(attachment 下载、大二进制预览、PPTX 图片数组)
|
|
11
|
+
# 的响应跳过整包聚合,避免单请求在内存里同时存原始 bytes + json 解析结果 + 重编码 bytes 三份拷贝。
|
|
12
|
+
# 默认 2MB;可经环境变量 TRACEID_MAX_AGGREGATE_BODY 覆盖。
|
|
13
|
+
_MAX_AGGREGATE_BODY = int(os.environ.get("TRACEID_MAX_AGGREGATE_BODY", 2 * 1024 * 1024))
|
|
14
|
+
|
|
9
15
|
|
|
10
16
|
def setup_trace_id_handler(app):
|
|
11
17
|
@app.middleware("http")
|
|
@@ -188,38 +194,86 @@ def setup_trace_id_handler(app):
|
|
|
188
194
|
pass
|
|
189
195
|
|
|
190
196
|
# 处理响应体
|
|
191
|
-
|
|
197
|
+
# 🔑 OOM 防护:对大响应体(文件下载/二进制预览/PPTX 图片数组)跳过整包聚合。
|
|
198
|
+
# 否则上百 MB 的 attachment 会被 response_body += chunk 全量读进内存,再 json.loads/dumps
|
|
199
|
+
# 产生多份拷贝,单请求即可吃掉数百 MB。大响应只改写 header 不重写 body。
|
|
200
|
+
content_disposition = response.headers.get(
|
|
201
|
+
"content-disposition", "").lower()
|
|
202
|
+
_is_attachment = content_disposition.startswith("attachment")
|
|
192
203
|
try:
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
204
|
+
content_length_str = response.headers.get("content-length", "")
|
|
205
|
+
content_length = int(content_length_str) if content_length_str.isdigit() else None
|
|
206
|
+
except (TypeError, ValueError):
|
|
207
|
+
content_length = None
|
|
208
|
+
# 超过阈值(默认 2MB)或 attachment 下载 → 跳过聚合,直接透传 body(仍注入 traceId header)
|
|
209
|
+
_skip_aggregate = (
|
|
210
|
+
_is_attachment
|
|
211
|
+
or (content_length is not None and content_length > _MAX_AGGREGATE_BODY)
|
|
212
|
+
)
|
|
198
213
|
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
214
|
+
response_body = b""
|
|
215
|
+
if _skip_aggregate:
|
|
216
|
+
# 大响应:不读 body,保留原 StreamingResponse 的 body_iterator 透传。
|
|
217
|
+
# 仅补 header,不动 body/Content-Length。
|
|
218
|
+
response.headers["x-traceid-header"] = trace_id
|
|
219
|
+
for k, v in cors_headers.items():
|
|
220
|
+
response.headers[k] = v
|
|
221
|
+
response_log_body = f"<skipped: large response, content-length={content_length}, attachment={_is_attachment}>"
|
|
222
|
+
else:
|
|
223
|
+
try:
|
|
224
|
+
async for chunk in response.body_iterator:
|
|
225
|
+
response_body += chunk
|
|
226
|
+
# 聚合期再兜一道防线上限:流式 body 没有 Content-Length,读到超限就放弃重写
|
|
227
|
+
if len(response_body) > _MAX_AGGREGATE_BODY:
|
|
228
|
+
_skip_aggregate = True
|
|
229
|
+
break
|
|
230
|
+
except StopAsyncIteration:
|
|
231
|
+
pass
|
|
232
|
+
|
|
233
|
+
if _skip_aggregate:
|
|
234
|
+
# 流式响应超限,恢复为透传已读部分(不重写 JSON,保留原 body)
|
|
235
|
+
response.headers["x-traceid-header"] = trace_id
|
|
236
|
+
for k, v in cors_headers.items():
|
|
237
|
+
response.headers[k] = v
|
|
238
|
+
response_log_body = f"<skipped: large response during aggregate, size={len(response_body)}>"
|
|
239
|
+
else:
|
|
240
|
+
# JSON 响应体注入 traceId
|
|
241
|
+
if "application/json" in response_content_type and not _is_attachment:
|
|
242
|
+
try:
|
|
243
|
+
data = json.loads(response_body)
|
|
244
|
+
new_body = response_body
|
|
245
|
+
if isinstance(data, dict):
|
|
246
|
+
data["traceId"] = trace_id
|
|
247
|
+
new_body = json.dumps(
|
|
248
|
+
data, ensure_ascii=False).encode()
|
|
249
|
+
|
|
250
|
+
# 重建 Response 以更新 Body 和 Content-Length
|
|
251
|
+
response = Response(
|
|
252
|
+
content=new_body,
|
|
253
|
+
status_code=response.status_code,
|
|
254
|
+
headers=dict(response.headers),
|
|
255
|
+
media_type=response.media_type
|
|
256
|
+
)
|
|
257
|
+
response.headers["content-length"] = str(len(new_body))
|
|
258
|
+
response.headers["x-traceid-header"] = trace_id
|
|
259
|
+
# 恢复 CORS
|
|
260
|
+
for k, v in cors_headers.items():
|
|
261
|
+
response.headers[k] = v
|
|
262
|
+
except json.JSONDecodeError:
|
|
263
|
+
# 非 JSON 或解析失败,仅更新长度
|
|
264
|
+
response = Response(
|
|
265
|
+
content=response_body,
|
|
266
|
+
status_code=response.status_code,
|
|
267
|
+
headers=dict(response.headers),
|
|
268
|
+
media_type=response.media_type
|
|
269
|
+
)
|
|
270
|
+
response.headers["content-length"] = str(
|
|
271
|
+
len(response_body))
|
|
272
|
+
response.headers["x-traceid-header"] = trace_id
|
|
273
|
+
for k, v in cors_headers.items():
|
|
274
|
+
response.headers[k] = v
|
|
275
|
+
else:
|
|
276
|
+
# 非 JSON 响应
|
|
223
277
|
response = Response(
|
|
224
278
|
content=response_body,
|
|
225
279
|
status_code=response.status_code,
|
|
@@ -231,21 +285,6 @@ def setup_trace_id_handler(app):
|
|
|
231
285
|
response.headers["x-traceid-header"] = trace_id
|
|
232
286
|
for k, v in cors_headers.items():
|
|
233
287
|
response.headers[k] = v
|
|
234
|
-
else:
|
|
235
|
-
# 非 JSON 响应
|
|
236
|
-
response = Response(
|
|
237
|
-
content=response_body,
|
|
238
|
-
status_code=response.status_code,
|
|
239
|
-
headers=dict(response.headers),
|
|
240
|
-
media_type=response.media_type
|
|
241
|
-
)
|
|
242
|
-
response.headers["content-length"] = str(
|
|
243
|
-
len(response_body))
|
|
244
|
-
response.headers["x-traceid-header"] = trace_id
|
|
245
|
-
for k, v in cors_headers.items():
|
|
246
|
-
response.headers[k] = v
|
|
247
|
-
except StopAsyncIteration:
|
|
248
|
-
pass
|
|
249
288
|
|
|
250
289
|
# 构建响应日志
|
|
251
290
|
response_log_body = response_body.decode('utf-8', errors='ignore')
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: sycommon-python-lib
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.7a44
|
|
4
4
|
Summary: Add your description here
|
|
5
5
|
Requires-Python: >=3.11
|
|
6
6
|
Description-Content-Type: text/markdown
|
|
@@ -11,16 +11,16 @@ Requires-Dist: anyio==4.14.2
|
|
|
11
11
|
Requires-Dist: decorator==5.3.1
|
|
12
12
|
Requires-Dist: deepagents==0.6.12
|
|
13
13
|
Requires-Dist: elasticsearch==9.4.1
|
|
14
|
-
Requires-Dist: fastapi==0.139.
|
|
14
|
+
Requires-Dist: fastapi==0.139.2
|
|
15
15
|
Requires-Dist: jinja2==3.1.6
|
|
16
16
|
Requires-Dist: kafka-python==3.0.8
|
|
17
|
-
Requires-Dist: langchain==1.3.
|
|
17
|
+
Requires-Dist: langchain==1.3.14
|
|
18
18
|
Requires-Dist: langchain-core==1.4.9
|
|
19
19
|
Requires-Dist: langchain-openai==1.3.5
|
|
20
20
|
Requires-Dist: langfuse==4.14.0
|
|
21
21
|
Requires-Dist: langgraph==1.2.9
|
|
22
22
|
Requires-Dist: langgraph-checkpoint-postgres==3.1.0
|
|
23
|
-
Requires-Dist: langgraph-checkpoint-redis==0.5.
|
|
23
|
+
Requires-Dist: langgraph-checkpoint-redis==0.5.1
|
|
24
24
|
Requires-Dist: ldap3==2.9.1
|
|
25
25
|
Requires-Dist: loguru==0.7.3
|
|
26
26
|
Requires-Dist: mysql-connector-python==9.7.0
|
|
@@ -32,7 +32,7 @@ Requires-Dist: python-dotenv==1.2.2
|
|
|
32
32
|
Requires-Dist: python-multipart==0.0.32
|
|
33
33
|
Requires-Dist: pyyaml==6.0.3
|
|
34
34
|
Requires-Dist: redis==7.4.0
|
|
35
|
-
Requires-Dist: sentry-sdk[fastapi]==2.
|
|
35
|
+
Requires-Dist: sentry-sdk[fastapi]==2.66.0
|
|
36
36
|
Requires-Dist: sqlalchemy[asyncio]==2.0.51
|
|
37
37
|
Requires-Dist: starlette[full]==1.3.1
|
|
38
38
|
Requires-Dist: tiktoken==0.13.0
|
|
@@ -5,16 +5,16 @@ anyio==4.14.2
|
|
|
5
5
|
decorator==5.3.1
|
|
6
6
|
deepagents==0.6.12
|
|
7
7
|
elasticsearch==9.4.1
|
|
8
|
-
fastapi==0.139.
|
|
8
|
+
fastapi==0.139.2
|
|
9
9
|
jinja2==3.1.6
|
|
10
10
|
kafka-python==3.0.8
|
|
11
|
-
langchain==1.3.
|
|
11
|
+
langchain==1.3.14
|
|
12
12
|
langchain-core==1.4.9
|
|
13
13
|
langchain-openai==1.3.5
|
|
14
14
|
langfuse==4.14.0
|
|
15
15
|
langgraph==1.2.9
|
|
16
16
|
langgraph-checkpoint-postgres==3.1.0
|
|
17
|
-
langgraph-checkpoint-redis==0.5.
|
|
17
|
+
langgraph-checkpoint-redis==0.5.1
|
|
18
18
|
ldap3==2.9.1
|
|
19
19
|
loguru==0.7.3
|
|
20
20
|
mysql-connector-python==9.7.0
|
|
@@ -26,7 +26,7 @@ python-dotenv==1.2.2
|
|
|
26
26
|
python-multipart==0.0.32
|
|
27
27
|
pyyaml==6.0.3
|
|
28
28
|
redis==7.4.0
|
|
29
|
-
sentry-sdk[fastapi]==2.
|
|
29
|
+
sentry-sdk[fastapi]==2.66.0
|
|
30
30
|
sqlalchemy[asyncio]==2.0.51
|
|
31
31
|
starlette[full]==1.3.1
|
|
32
32
|
tiktoken==0.13.0
|
|
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.7a42 → sycommon_python_lib-0.2.7a44}/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.7a42 → sycommon_python_lib-0.2.7a44}/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.7a42 → sycommon_python_lib-0.2.7a44}/src/command/templates/base/.env.tpl
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/command/templates/base/__init__.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/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.7a42 → sycommon_python_lib-0.2.7a44}/src/command/templates/cli/__init__.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/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.7a42 → sycommon_python_lib-0.2.7a44}/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.7a42 → sycommon_python_lib-0.2.7a44}/src/command/templates/web/app.py.tpl
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycli/cdp/capabilities/__init__.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycli/cdp/capabilities/console.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.7a42 → sycommon_python_lib-0.2.7a44}/src/sycli/cdp/capabilities/dom.py
RENAMED
|
File without changes
|