sycommon-python-lib 0.2.5a23__tar.gz → 0.2.5a25__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.5a23 → sycommon_python_lib-0.2.5a25}/PKG-INFO +1 -1
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/pyproject.toml +1 -1
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/agent/summarization_utils.py +65 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/models/mqlistener_config.py +2 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/rabbitmq/rabbitmq_client.py +125 -14
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/rabbitmq/rabbitmq_service_client_manager.py +4 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/rabbitmq/rabbitmq_service_producer_manager.py +2 -1
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon_python_lib.egg-info/PKG-INFO +1 -1
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/README.md +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/setup.cfg +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/cli.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/core/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/core/console.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/core/models.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/core/project.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/core/utils.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/agent/README.md.tpl +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/agent/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/agent/agent/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/agent/agent/main_agent.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/agent/agent/nodes/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/agent/agent/nodes/example_node.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/agent/agent/states/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/agent/agent/states/agent_state.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/agent/api/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/agent/api/query.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/agent/api/sse/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/agent/api/sse/agent.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/agent/app.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/agent/client/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/agent/db/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/agent/db/model/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/agent/db/model/entity.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/agent/db/service.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/agent/model/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/agent/model/parse.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/agent/tools/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/agent/tools/mq.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/base/.env.tpl +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/base/.gitignore.tpl +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/base/Dockerfile.tpl +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/base/README.md.tpl +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/base/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/base/app.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/base/app.yaml.tpl +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/base/client/FileServiceClient.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/base/client/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/base/model/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/base/model/file_info.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/base/requirements.txt.tpl +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/cli/README.md.tpl +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/cli/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/cli/app.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/cli/commands/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/cli/commands/hello.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/cli/pyproject.toml.tpl +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/cli/tools/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/web/README.md.tpl +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/web/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/web/api/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/web/api/echo.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/web/api/sse/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/web/api/sse/echo.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/web/app.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/web/client/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/web/model/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/web/tools/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/web/tools/mq.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/nexus/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/__main__.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/agents/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/agents/factory.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/agents/prompts.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/cdp/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/cdp/browser.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/cdp/capabilities/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/cdp/capabilities/console.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/cdp/capabilities/dom.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/cdp/capabilities/network.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/cdp/capabilities/page_errors.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/cdp/capabilities/performance.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/cdp/capabilities/screenshot.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/cdp/client.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/cdp/protocol.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/cdp/repl.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/cli.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/commands/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/commands/cdp_cmd.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/commands/chat_cmd.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/commands/create_cmd.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/commands/evaluate_cmd.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/commands/init_cmd.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/commands/memory_cmd.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/commands/resume_cmd.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/commands/rollback_cmd.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/commands/run_cmd.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/core/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/core/backend.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/core/config.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/core/display.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/core/git_integration.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/core/llm.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/core/state.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/evaluate/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/evaluate/api_evaluator.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/memory/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/memory/compressor.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/memory/full.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/memory/hot.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/memory/manager.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/memory/warm.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/mode/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/mode/create.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/mode/optimize.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/models/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/models/config_models.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/rl/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/rl/baseline_tests.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/rl/checkpoint.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/rl/convergence.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/rl/diagnosis.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/rl/engine.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/rl/environment.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/rl/experience.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/rl/harness_prompts.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/rl/history.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/rl/optimization_logger.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/rl/pre_validation.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/rl/reward.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/rl/strategy_bandit.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/rl/strategy_generator.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/rl/strategy_prompts.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/skills/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/agent/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/agent/agent_manager.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/agent/chat_events.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/agent/deep_agent.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/agent/mcp/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/agent/mcp/models.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/agent/mcp/tool_loader.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/agent/multi_agent_team.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/agent/sandbox/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/agent/sandbox/file_ops.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/agent/sandbox/http_sandbox_backend.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/agent/sandbox/minio_sync.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/agent/sandbox/sandbox_pool.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/agent/sandbox/sandbox_recovery.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/agent/sandbox/session.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/auth/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/auth/ldap_service.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/auth/oa_cache.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/auth/oa_crypto.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/auth/oa_service.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/auth/wecom_ldap_service.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/config/Config.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/config/DatabaseConfig.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/config/ElasticsearchConfig.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/config/EmbeddingConfig.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/config/LLMConfig.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/config/LangfuseConfig.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/config/MQConfig.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/config/PgConfig.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/config/RedisConfig.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/config/RerankerConfig.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/config/SentryConfig.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/config/XxlJobConfig.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/config/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/database/async_base_db_service.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/database/async_database_service.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/database/base_db_service.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/database/database_service.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/database/elasticsearch_service.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/database/pg_checkpoint_service.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/database/redis_service.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/database/token_usage_db_service.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/health/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/health/health_check.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/health/metrics.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/health/ping.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/heartbeat_process/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/heartbeat_process/heartbeat_config.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/heartbeat_process/heartbeat_process_manager.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/heartbeat_process/heartbeat_process_worker.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/llm/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/llm/embedding.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/llm/get_llm.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/llm/llm_logger.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/llm/llm_tokens.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/llm/llm_with_token_tracking.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/llm/native_with_fallback_runnable.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/llm/output_fixing_runnable.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/llm/struct_token.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/llm/sy_langfuse.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/llm/tiktoken_cache/9b5ad71b2ce5302211f9c61530b329a4922fc6a4 +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/llm/tiktoken_cache/fb374d419588a4632f3f557e76b4b70aebbca790 +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/llm/token_usage_es_service.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/llm/token_usage_mysql_service.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/llm/usage_token.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/logging/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/logging/async_sql_logger.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/logging/kafka_log.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/logging/logger_levels.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/logging/logger_wrapper.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/logging/process_logger.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/logging/sql_logger.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/mcp_server/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/mcp_server/server.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/middleware/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/middleware/context.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/middleware/cors.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/middleware/docs.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/middleware/exception.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/middleware/middleware.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/middleware/monitor_memory.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/middleware/mq.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/middleware/sandbox.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/middleware/timeout.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/middleware/token_tracking.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/middleware/tool_result_truncation.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/middleware/traceid.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/models/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/models/base_http.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/models/log.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/models/mcp_server_config.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/models/mqmsg_model.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/models/mqsend_config.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/models/sandbox.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/models/sso_user.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/models/token_usage.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/models/token_usage_mysql.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/models/xxljob_handler_config.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/notice/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/notice/uvicorn_monitor.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/notice/wecom_message.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/rabbitmq/process_pool_consumer.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/rabbitmq/rabbitmq_pool.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/rabbitmq/rabbitmq_service.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/rabbitmq/rabbitmq_service_connection_monitor.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/rabbitmq/rabbitmq_service_consumer_manager.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/rabbitmq/rabbitmq_service_core.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/sentry/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/sentry/sy_sentry.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/services.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/sse/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/sse/event.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/sse/sse.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/synacos/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/synacos/example.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/synacos/example2.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/synacos/feign.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/synacos/feign_client.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/synacos/nacos_client_base.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/synacos/nacos_config_manager.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/synacos/nacos_heartbeat_manager.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/synacos/nacos_service.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/synacos/nacos_service_discovery.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/synacos/nacos_service_registration.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/synacos/param.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/tests/deep_agent_server.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/tests/test_consumer_recovery.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/tests/test_deep_agent.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/tests/test_dynamic_max_tokens.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/tests/test_email.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/tests/test_encoding_cache.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/tests/test_mcp_server.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/tests/test_minimax_reasoning.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/tests/test_mq.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/tests/test_oa_login.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/tests/test_real_summarization.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/tests/test_summarization_config.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/tests/test_summarization_real.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/tools/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/tools/async_utils.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/tools/docs.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/tools/env.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/tools/merge_headers.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/tools/snowflake.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/tools/syemail.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/tools/timing.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/xxljob/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon/xxljob/xxljob_service.py +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon_python_lib.egg-info/SOURCES.txt +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon_python_lib.egg-info/dependency_links.txt +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon_python_lib.egg-info/entry_points.txt +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon_python_lib.egg-info/requires.txt +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycommon_python_lib.egg-info/top_level.txt +0 -0
- {sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/tests/test_sycli.py +0 -0
|
@@ -25,6 +25,50 @@ if TYPE_CHECKING:
|
|
|
25
25
|
|
|
26
26
|
logger = logging.getLogger(__name__)
|
|
27
27
|
|
|
28
|
+
# 中文摘要提示词,替代 langchain DEFAULT_SUMMARY_PROMPT
|
|
29
|
+
# 使用自然段落格式,避免 SESSION INTENT / ARTIFACTS / NEXT STEPS 等英文标题泄漏到用户输出
|
|
30
|
+
CUSTOM_SUMMARY_PROMPT = """<role>
|
|
31
|
+
上下文提取助手
|
|
32
|
+
</role>
|
|
33
|
+
|
|
34
|
+
<primary_objective>
|
|
35
|
+
你的唯一目标是从下面的对话历史中提取最高质量、最相关的上下文信息。
|
|
36
|
+
</primary_objective>
|
|
37
|
+
|
|
38
|
+
<objective_information>
|
|
39
|
+
你即将达到可接受的输入 token 总数,因此必须从对话历史中提取最高质量/最相关的信息。
|
|
40
|
+
提取的上下文将替换下面的对话历史。因此,确保你提取的上下文仅包含对实现整体目标最重要的信息。
|
|
41
|
+
</objective_information>
|
|
42
|
+
|
|
43
|
+
<instructions>
|
|
44
|
+
下面的对话历史将被你在此步骤中提取的上下文替换。
|
|
45
|
+
你需要确保不会重复任何已完成的操作,因此你从对话历史中提取的上下文应集中于对整体目标最重要的信息。
|
|
46
|
+
|
|
47
|
+
请用以下结构提取上下文,每个部分用中文自然段落描述,不要使用英文标题:
|
|
48
|
+
|
|
49
|
+
【用户意图】
|
|
50
|
+
简要描述用户的主要目标或请求,确保足够完整以理解整个会话的目的。
|
|
51
|
+
|
|
52
|
+
【关键上下文】
|
|
53
|
+
提取并记录对话历史中所有最重要的上下文信息,包括重要选择、结论或策略,以及关键决策背后的推理。记录被拒绝的选项及其原因。
|
|
54
|
+
|
|
55
|
+
【相关文件】
|
|
56
|
+
列出在本次对话中创建、修改或访问的文件、资源或工件。对于文件修改,列出具体文件路径并简要描述每个文件的变更。
|
|
57
|
+
|
|
58
|
+
【待办事项】
|
|
59
|
+
列出为达成用户意图仍需完成的具体任务,以及接下来应该做什么。
|
|
60
|
+
</instructions>
|
|
61
|
+
|
|
62
|
+
用户将向你发送完整的消息历史,你需要从中提取上下文以创建替换内容。请仔细阅读所有内容,并深入思考哪些信息对整体目标最重要且应该被保存:
|
|
63
|
+
|
|
64
|
+
请仔细阅读整个对话历史,提取最重要和最相关的上下文以替换对话历史,从而释放空间。
|
|
65
|
+
仅回复提取的上下文,不要包含任何额外信息,也不要在提取的上下文前后添加任何文本。
|
|
66
|
+
|
|
67
|
+
<messages>
|
|
68
|
+
待摘要的消息:
|
|
69
|
+
{messages}
|
|
70
|
+
</messages>""" # noqa: E501
|
|
71
|
+
|
|
28
72
|
|
|
29
73
|
def _extract_last_usage_total_tokens(messages) -> int:
|
|
30
74
|
"""从消息历史中提取最后一条 AIMessage 的 usage_metadata.total_tokens。
|
|
@@ -135,6 +179,26 @@ async def _patched_awrap_model_call(self, request, handler):
|
|
|
135
179
|
|
|
136
180
|
_OrigDeepAgentsSumm.awrap_model_call = _patched_awrap_model_call
|
|
137
181
|
|
|
182
|
+
# monkey-patch:将摘要注入消息改为中文包装,避免英文泄漏
|
|
183
|
+
_orig_build_new_messages = _OrigDeepAgentsSumm._build_new_messages_with_path
|
|
184
|
+
|
|
185
|
+
|
|
186
|
+
def _patched_build_new_messages(self, summary, file_path):
|
|
187
|
+
if file_path is not None:
|
|
188
|
+
content = (
|
|
189
|
+
"你正在一个已经被压缩的对话中继续回复用户。\n\n"
|
|
190
|
+
f"完整的对话历史已保存到 {file_path},如需查阅细节可以读取该文件。\n\n"
|
|
191
|
+
"以下是压缩后的对话摘要:\n\n"
|
|
192
|
+
f"<summary>\n{summary}\n</summary>"
|
|
193
|
+
)
|
|
194
|
+
else:
|
|
195
|
+
content = f"以下是到目前为止的对话摘要:\n\n{summary}"
|
|
196
|
+
from langchain_core.messages import HumanMessage
|
|
197
|
+
return [HumanMessage(content=content, additional_kwargs={"lc_source": "summarization"})]
|
|
198
|
+
|
|
199
|
+
|
|
200
|
+
_OrigDeepAgentsSumm._build_new_messages_with_path = _patched_build_new_messages
|
|
201
|
+
|
|
138
202
|
|
|
139
203
|
def build_summarization_middleware(
|
|
140
204
|
model: BaseChatModel,
|
|
@@ -180,6 +244,7 @@ def build_summarization_middleware(
|
|
|
180
244
|
keep=("tokens", keep_tokens),
|
|
181
245
|
token_counter=functools.partial(
|
|
182
246
|
count_tokens_approximately, chars_per_token=2.0),
|
|
247
|
+
summary_prompt=CUSTOM_SUMMARY_PROMPT,
|
|
183
248
|
trim_tokens_to_summarize=None,
|
|
184
249
|
truncate_args_settings={
|
|
185
250
|
"trigger": ("tokens", trigger_tokens),
|
|
@@ -32,6 +32,8 @@ class RabbitMQListenerConfig(BaseModel):
|
|
|
32
32
|
auto_delete: bool = Field(False, description="是否自动删除队列")
|
|
33
33
|
auto_parse_json: bool = Field(True, description="是否自动解析JSON消息")
|
|
34
34
|
prefetch_count: int = Field(2, description="同时消费并发数(控制MQ预取与handler并发上限)")
|
|
35
|
+
max_priority: Optional[int] = Field(
|
|
36
|
+
None, description="队列支持的最大优先级(对应 x-max-priority)")
|
|
35
37
|
|
|
36
38
|
class Config:
|
|
37
39
|
"""模型配置"""
|
|
@@ -42,6 +42,7 @@ class RabbitMQClient:
|
|
|
42
42
|
auto_delete: bool = False,
|
|
43
43
|
auto_parse_json: bool = True,
|
|
44
44
|
create_if_not_exists: bool = True,
|
|
45
|
+
max_priority: Optional[int] = None,
|
|
45
46
|
**kwargs,
|
|
46
47
|
):
|
|
47
48
|
self.connection_pool = connection_pool
|
|
@@ -60,6 +61,7 @@ class RabbitMQClient:
|
|
|
60
61
|
self.auto_delete = auto_delete
|
|
61
62
|
self.auto_parse_json = auto_parse_json
|
|
62
63
|
self.create_if_not_exists = create_if_not_exists
|
|
64
|
+
self.max_priority = max_priority
|
|
63
65
|
|
|
64
66
|
# 资源状态
|
|
65
67
|
self._channel: Optional[AbstractChannel] = None
|
|
@@ -91,6 +93,97 @@ class RabbitMQClient:
|
|
|
91
93
|
except Exception:
|
|
92
94
|
return False
|
|
93
95
|
|
|
96
|
+
async def _try_migrate_queue(self, original_error: Exception) -> bool:
|
|
97
|
+
"""尝试迁移队列以支持 x-max-priority。
|
|
98
|
+
|
|
99
|
+
当队列已存在但参数不匹配(PRECONDITION_FAILED)时,检查队列是否为空,
|
|
100
|
+
为空则删除重建,否则跳过迁移。
|
|
101
|
+
|
|
102
|
+
Returns:
|
|
103
|
+
True 迁移成功,False 未迁移(需由调用方处理)
|
|
104
|
+
"""
|
|
105
|
+
from aiormq.exceptions import ChannelPreconditionFailed
|
|
106
|
+
|
|
107
|
+
if not isinstance(original_error, ChannelPreconditionFailed):
|
|
108
|
+
return False
|
|
109
|
+
|
|
110
|
+
if self.max_priority is None:
|
|
111
|
+
return False
|
|
112
|
+
|
|
113
|
+
try:
|
|
114
|
+
# PRECONDITION_FAILED 会关闭当前 channel,需要用新 channel 检查队列状态
|
|
115
|
+
channel, _ = await self.connection_pool.acquire_channel()
|
|
116
|
+
try:
|
|
117
|
+
queue = await channel.declare_queue(
|
|
118
|
+
name=self.queue_name, passive=True
|
|
119
|
+
)
|
|
120
|
+
if queue.declaration_result:
|
|
121
|
+
message_count = queue.declaration_result.message_count
|
|
122
|
+
consumer_count = queue.declaration_result.consumer_count
|
|
123
|
+
else:
|
|
124
|
+
message_count = 0
|
|
125
|
+
consumer_count = 0
|
|
126
|
+
finally:
|
|
127
|
+
await channel.close()
|
|
128
|
+
|
|
129
|
+
if message_count > 0:
|
|
130
|
+
logger.warning(
|
|
131
|
+
f"队列 '{self.queue_name}' 迁移跳过: "
|
|
132
|
+
f"存在 {message_count} 条消息"
|
|
133
|
+
)
|
|
134
|
+
return False
|
|
135
|
+
|
|
136
|
+
logger.info(
|
|
137
|
+
f"开始迁移队列 '{self.queue_name}',添加 x-max-priority={self.max_priority}")
|
|
138
|
+
|
|
139
|
+
# 删除旧队列
|
|
140
|
+
channel, _ = await self.connection_pool.acquire_channel()
|
|
141
|
+
try:
|
|
142
|
+
await channel.queue_delete(
|
|
143
|
+
queue_name=self.queue_name,
|
|
144
|
+
if_unused=False,
|
|
145
|
+
if_empty=False,
|
|
146
|
+
)
|
|
147
|
+
finally:
|
|
148
|
+
await channel.close()
|
|
149
|
+
|
|
150
|
+
# 清理旧 channel(被 PRECONDITION_FAILED 关闭后残留)
|
|
151
|
+
if self._channel and not self._channel.is_closed:
|
|
152
|
+
try:
|
|
153
|
+
await self._channel.close()
|
|
154
|
+
except Exception:
|
|
155
|
+
pass
|
|
156
|
+
self._channel = None
|
|
157
|
+
self._exchange = None
|
|
158
|
+
self._queue = None
|
|
159
|
+
|
|
160
|
+
# 重建 self._channel(旧 channel 已被 PRECONDITION_FAILED 关闭)
|
|
161
|
+
self._channel, self._channel_conn = await self.connection_pool.acquire_channel()
|
|
162
|
+
|
|
163
|
+
# 重新声明交换机
|
|
164
|
+
self._exchange = await self._channel.declare_exchange(
|
|
165
|
+
name=self.exchange_name,
|
|
166
|
+
type=self.exchange_type,
|
|
167
|
+
durable=self.durable,
|
|
168
|
+
auto_delete=self.auto_delete,
|
|
169
|
+
)
|
|
170
|
+
|
|
171
|
+
# 重新声明带 priority 的队列
|
|
172
|
+
self._queue = await self._channel.declare_queue(
|
|
173
|
+
name=self.queue_name,
|
|
174
|
+
durable=self.durable,
|
|
175
|
+
auto_delete=self.auto_delete,
|
|
176
|
+
arguments={"x-max-priority": self.max_priority},
|
|
177
|
+
)
|
|
178
|
+
await self._queue.bind(exchange=self._exchange, routing_key=self.routing_key)
|
|
179
|
+
logger.info(
|
|
180
|
+
f"队列 '{self.queue_name}' 迁移成功,已添加 x-max-priority={self.max_priority}")
|
|
181
|
+
return True
|
|
182
|
+
|
|
183
|
+
except Exception as migrate_error:
|
|
184
|
+
logger.error(f"队列 '{self.queue_name}' 迁移失败: {migrate_error}")
|
|
185
|
+
return False
|
|
186
|
+
|
|
94
187
|
async def _rebuild_resources(self) -> None:
|
|
95
188
|
if not self._channel or self._channel.is_closed:
|
|
96
189
|
raise RuntimeError("无有效通道,无法重建资源")
|
|
@@ -112,26 +205,32 @@ class RabbitMQClient:
|
|
|
112
205
|
# 2. 声明队列 (仅消费者需要)
|
|
113
206
|
# 【核心保留逻辑】只有当 queue_name 存在且符合消费者命名规范时,才初始化队列
|
|
114
207
|
if self.queue_name and self.queue_name.endswith(f".{self.app_name}"):
|
|
208
|
+
queue_args = {}
|
|
209
|
+
if self.max_priority is not None:
|
|
210
|
+
queue_args["x-max-priority"] = self.max_priority
|
|
211
|
+
|
|
115
212
|
try:
|
|
116
213
|
self._queue = await self._channel.declare_queue(
|
|
117
214
|
name=self.queue_name,
|
|
118
215
|
durable=self.durable,
|
|
119
216
|
auto_delete=self.auto_delete,
|
|
120
217
|
passive=not self.create_if_not_exists,
|
|
218
|
+
arguments=queue_args or None,
|
|
121
219
|
)
|
|
122
220
|
await self._queue.bind(exchange=self._exchange, routing_key=self.routing_key)
|
|
123
221
|
logger.debug(f"队列就绪: {self.queue_name}")
|
|
124
222
|
except Exception as e:
|
|
125
|
-
|
|
126
|
-
if self.create_if_not_exists:
|
|
127
|
-
# 模式:自动创建。如果失败说明权限不足或服务器限制,属于严重错误
|
|
128
|
-
logger.error(f"❌ 无法自动创建队列 '{self.queue_name}': {e}")
|
|
129
|
-
raise
|
|
130
|
-
else:
|
|
131
|
-
# 模式:仅检查。队列不存在是预期内的(如生产者启动时队列未创建),跳过
|
|
223
|
+
if not self.create_if_not_exists:
|
|
132
224
|
self._queue = None
|
|
133
225
|
logger.warning(
|
|
134
226
|
f"⚠️ 队列 '{self.queue_name}' 不存在或无权访问 (Passive模式),跳过绑定。")
|
|
227
|
+
return
|
|
228
|
+
|
|
229
|
+
# 尝试自动迁移:参数不匹配时删除重建
|
|
230
|
+
migrated = await self._try_migrate_queue(e)
|
|
231
|
+
if not migrated:
|
|
232
|
+
# 迁移失败(非参数不匹配 / 队列非空 / 有消费者),抛出原始异常
|
|
233
|
+
raise
|
|
135
234
|
else:
|
|
136
235
|
# 不符合命名规范或无队列名,清空队列引用
|
|
137
236
|
self._queue = None
|
|
@@ -145,7 +244,8 @@ class RabbitMQClient:
|
|
|
145
244
|
t.cancel()
|
|
146
245
|
try:
|
|
147
246
|
await asyncio.wait_for(
|
|
148
|
-
asyncio.gather(*self._running_tasks,
|
|
247
|
+
asyncio.gather(*self._running_tasks,
|
|
248
|
+
return_exceptions=True),
|
|
149
249
|
timeout=5.0
|
|
150
250
|
)
|
|
151
251
|
except asyncio.TimeoutError:
|
|
@@ -350,16 +450,21 @@ class RabbitMQClient:
|
|
|
350
450
|
if not self._queue and self.queue_name and self.queue_name.endswith(f".{self.app_name}"):
|
|
351
451
|
logger.warning(f"队列对象在消费前为空,尝试强制初始化: {self.queue_name}")
|
|
352
452
|
try:
|
|
453
|
+
queue_args = {}
|
|
454
|
+
if self.max_priority is not None:
|
|
455
|
+
queue_args["x-max-priority"] = self.max_priority
|
|
353
456
|
self._queue = await self._channel.declare_queue(
|
|
354
457
|
name=self.queue_name,
|
|
355
458
|
durable=self.durable,
|
|
356
459
|
auto_delete=self.auto_delete,
|
|
357
|
-
passive=False,
|
|
460
|
+
passive=False,
|
|
461
|
+
arguments=queue_args or None,
|
|
358
462
|
)
|
|
359
463
|
await self._queue.bind(exchange=self._exchange, routing_key=self.routing_key)
|
|
360
464
|
except Exception as e:
|
|
361
|
-
|
|
362
|
-
|
|
465
|
+
migrated = await self._try_migrate_queue(e)
|
|
466
|
+
if not migrated:
|
|
467
|
+
raise RuntimeError(f"无法初始化队列 {self.queue_name}")
|
|
363
468
|
|
|
364
469
|
if not self._queue:
|
|
365
470
|
raise RuntimeError("未配置队列名或队列初始化失败")
|
|
@@ -396,6 +501,7 @@ class RabbitMQClient:
|
|
|
396
501
|
content_type: str = "application/json",
|
|
397
502
|
delivery_mode: DeliveryMode = DeliveryMode.PERSISTENT,
|
|
398
503
|
retry_count: int = 3,
|
|
504
|
+
priority: Optional[int] = None,
|
|
399
505
|
) -> None:
|
|
400
506
|
if self._closed:
|
|
401
507
|
raise RuntimeError("客户端已关闭,无法发布消息")
|
|
@@ -415,8 +521,11 @@ class RabbitMQClient:
|
|
|
415
521
|
logger.error(f"消息体序列化失败: {e}")
|
|
416
522
|
raise
|
|
417
523
|
|
|
418
|
-
|
|
524
|
+
msg_kwargs = dict(body=body, headers=headers or {},
|
|
419
525
|
content_type=content_type, delivery_mode=delivery_mode)
|
|
526
|
+
if priority is not None:
|
|
527
|
+
msg_kwargs["priority"] = priority
|
|
528
|
+
message = Message(**msg_kwargs)
|
|
420
529
|
last_exception = None
|
|
421
530
|
|
|
422
531
|
for attempt in range(retry_count):
|
|
@@ -471,11 +580,13 @@ class RabbitMQClient:
|
|
|
471
580
|
logger.info(f"等待 {len(self._running_tasks)} 个后台任务完成...")
|
|
472
581
|
try:
|
|
473
582
|
await asyncio.wait_for(
|
|
474
|
-
asyncio.gather(*self._running_tasks,
|
|
583
|
+
asyncio.gather(*self._running_tasks,
|
|
584
|
+
return_exceptions=True),
|
|
475
585
|
timeout=15.0
|
|
476
586
|
)
|
|
477
587
|
except asyncio.TimeoutError:
|
|
478
|
-
logger.warning(
|
|
588
|
+
logger.warning(
|
|
589
|
+
f"等待后台任务超时,剩余 {len(self._running_tasks)} 个任务将被丢弃")
|
|
479
590
|
self._running_tasks.clear()
|
|
480
591
|
|
|
481
592
|
if self._channel and not self._channel.is_closed:
|
|
@@ -183,6 +183,7 @@ class RabbitMQClientManager(RabbitMQCoreService):
|
|
|
183
183
|
auto_parse_json=kwargs.get('auto_parse_json', True),
|
|
184
184
|
create_if_not_exists=create_if_not_exists,
|
|
185
185
|
prefetch_count=kwargs.get('prefetch_count', 2),
|
|
186
|
+
max_priority=kwargs.get('max_priority'),
|
|
186
187
|
)
|
|
187
188
|
|
|
188
189
|
# 4. 连接客户端
|
|
@@ -238,6 +239,9 @@ class RabbitMQClientManager(RabbitMQCoreService):
|
|
|
238
239
|
client.queue_name = input_qn
|
|
239
240
|
|
|
240
241
|
if await client.is_connected:
|
|
242
|
+
# 更新 max_priority(发送器先创建客户端时没有此参数)
|
|
243
|
+
if client_type == "listener" and 'max_priority' in kwargs:
|
|
244
|
+
client.max_priority = kwargs['max_priority']
|
|
241
245
|
return client
|
|
242
246
|
else:
|
|
243
247
|
logger.info(f"客户端 '{client_name}' 连接已断开,重新创建")
|
|
@@ -218,7 +218,8 @@ class RabbitMQProducerManager(RabbitMQClientManager):
|
|
|
218
218
|
await sender.publish(
|
|
219
219
|
message_body=mq_message.model_dump_json(),
|
|
220
220
|
headers=mq_header,
|
|
221
|
-
content_type="application/json"
|
|
221
|
+
content_type="application/json",
|
|
222
|
+
priority=kwargs.get('priority')
|
|
222
223
|
)
|
|
223
224
|
logger.info(f"消息发送成功 (队列: {queue_name})")
|
|
224
225
|
except Exception as 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.5a23 → sycommon_python_lib-0.2.5a25}/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.5a23 → sycommon_python_lib-0.2.5a25}/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.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/base/.env.tpl
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/base/__init__.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/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.5a23 → sycommon_python_lib-0.2.5a25}/src/command/templates/cli/__init__.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/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.5a23 → sycommon_python_lib-0.2.5a25}/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.5a23 → sycommon_python_lib-0.2.5a25}/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.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/cdp/capabilities/__init__.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/cdp/capabilities/console.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/cdp/capabilities/dom.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/cdp/capabilities/network.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/commands/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/commands/chat_cmd.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/commands/create_cmd.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/commands/evaluate_cmd.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/commands/init_cmd.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/commands/memory_cmd.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/commands/resume_cmd.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.5a23 → sycommon_python_lib-0.2.5a25}/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.5a23 → sycommon_python_lib-0.2.5a25}/src/sycli/core/git_integration.py
RENAMED
|
File without changes
|