sycommon-python-lib 0.2.6a0__tar.gz → 0.2.6a1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/PKG-INFO +1 -1
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/pyproject.toml +1 -1
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/auth/wecom_ldap_service.py +140 -3
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon_python_lib.egg-info/PKG-INFO +1 -1
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/README.md +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/setup.cfg +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/command/__init__.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/command/cli.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/command/core/__init__.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/command/core/console.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/command/core/models.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/command/core/project.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/command/core/utils.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/command/templates/__init__.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/command/templates/agent/README.md.tpl +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/command/templates/agent/__init__.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/command/templates/agent/agent/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/command/templates/agent/agent/main_agent.py.tpl +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/command/templates/agent/agent/nodes/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/command/templates/agent/agent/nodes/example_node.py.tpl +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/command/templates/agent/agent/states/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/command/templates/agent/agent/states/agent_state.py.tpl +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/command/templates/agent/api/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/command/templates/agent/api/query.py.tpl +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/command/templates/agent/api/sse/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/command/templates/agent/api/sse/agent.py.tpl +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/command/templates/agent/app.py.tpl +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/command/templates/agent/client/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/command/templates/agent/db/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/command/templates/agent/db/model/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/command/templates/agent/db/model/entity.py.tpl +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/command/templates/agent/db/service.py.tpl +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/command/templates/agent/model/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/command/templates/agent/model/parse.py.tpl +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/command/templates/agent/tools/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/command/templates/agent/tools/mq.py.tpl +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/command/templates/base/.env.tpl +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/command/templates/base/.gitignore.tpl +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/command/templates/base/Dockerfile.tpl +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/command/templates/base/README.md.tpl +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/command/templates/base/__init__.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/command/templates/base/app.py.tpl +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/command/templates/base/app.yaml.tpl +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/command/templates/base/client/FileServiceClient.py.tpl +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/command/templates/base/client/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/command/templates/base/model/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/command/templates/base/model/file_info.py.tpl +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/command/templates/base/requirements.txt.tpl +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/command/templates/cli/README.md.tpl +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/command/templates/cli/__init__.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/command/templates/cli/app.py.tpl +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/command/templates/cli/commands/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/command/templates/cli/commands/hello.py.tpl +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/command/templates/cli/pyproject.toml.tpl +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/command/templates/cli/tools/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/command/templates/web/README.md.tpl +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/command/templates/web/__init__.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/command/templates/web/api/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/command/templates/web/api/echo.py.tpl +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/command/templates/web/api/sse/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/command/templates/web/api/sse/echo.py.tpl +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/command/templates/web/app.py.tpl +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/command/templates/web/client/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/command/templates/web/model/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/command/templates/web/tools/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/command/templates/web/tools/mq.py.tpl +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/nexus/__init__.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycli/__init__.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycli/__main__.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycli/agents/__init__.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycli/agents/factory.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycli/agents/prompts.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycli/cdp/__init__.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycli/cdp/browser.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycli/cdp/capabilities/__init__.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycli/cdp/capabilities/console.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycli/cdp/capabilities/dom.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycli/cdp/capabilities/network.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycli/cdp/capabilities/page_errors.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycli/cdp/capabilities/performance.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycli/cdp/capabilities/screenshot.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycli/cdp/client.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycli/cdp/protocol.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycli/cdp/repl.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycli/cli.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycli/commands/__init__.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycli/commands/cdp_cmd.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycli/commands/chat_cmd.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycli/commands/create_cmd.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycli/commands/evaluate_cmd.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycli/commands/init_cmd.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycli/commands/memory_cmd.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycli/commands/resume_cmd.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycli/commands/rollback_cmd.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycli/commands/run_cmd.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycli/core/__init__.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycli/core/backend.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycli/core/config.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycli/core/display.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycli/core/git_integration.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycli/core/llm.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycli/core/state.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycli/evaluate/__init__.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycli/evaluate/api_evaluator.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycli/memory/__init__.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycli/memory/compressor.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycli/memory/full.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycli/memory/hot.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycli/memory/manager.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycli/memory/warm.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycli/mode/__init__.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycli/mode/create.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycli/mode/optimize.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycli/models/__init__.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycli/models/config_models.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycli/rl/__init__.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycli/rl/baseline_tests.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycli/rl/checkpoint.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycli/rl/convergence.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycli/rl/diagnosis.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycli/rl/engine.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycli/rl/environment.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycli/rl/experience.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycli/rl/harness_prompts.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycli/rl/history.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycli/rl/optimization_logger.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycli/rl/pre_validation.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycli/rl/reward.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycli/rl/strategy_bandit.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycli/rl/strategy_generator.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycli/rl/strategy_prompts.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycli/skills/__init__.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/__init__.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/agent/__init__.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/agent/agent_manager.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/agent/chat_events.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/agent/deep_agent.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/agent/mcp/__init__.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/agent/mcp/models.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/agent/mcp/tool_loader.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/agent/multi_agent_team.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/agent/sandbox/__init__.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/agent/sandbox/file_ops.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/agent/sandbox/http_sandbox_backend.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/agent/sandbox/minio_sync.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/agent/sandbox/sandbox_pool.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/agent/sandbox/sandbox_recovery.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/agent/sandbox/session.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/agent/summarization_utils.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/auth/__init__.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/auth/ldap_service.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/auth/oa_cache.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/auth/oa_crypto.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/auth/oa_service.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/config/Config.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/config/DatabaseConfig.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/config/ElasticsearchConfig.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/config/EmbeddingConfig.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/config/LLMConfig.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/config/LangfuseConfig.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/config/MQConfig.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/config/PgConfig.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/config/RedisConfig.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/config/RerankerConfig.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/config/SentryConfig.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/config/XxlJobConfig.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/config/__init__.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/database/async_base_db_service.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/database/async_database_service.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/database/base_db_service.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/database/database_service.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/database/elasticsearch_service.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/database/pg_checkpoint_service.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/database/redis_service.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/database/token_usage_db_service.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/health/__init__.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/health/health_check.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/health/metrics.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/health/ping.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/heartbeat_process/__init__.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/heartbeat_process/heartbeat_config.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/heartbeat_process/heartbeat_process_manager.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/heartbeat_process/heartbeat_process_worker.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/llm/__init__.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/llm/embedding.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/llm/get_llm.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/llm/llm_logger.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/llm/llm_tokens.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/llm/llm_with_token_tracking.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/llm/native_with_fallback_runnable.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/llm/output_fixing_runnable.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/llm/struct_token.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/llm/sy_langfuse.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/llm/tiktoken_cache/9b5ad71b2ce5302211f9c61530b329a4922fc6a4 +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/llm/tiktoken_cache/fb374d419588a4632f3f557e76b4b70aebbca790 +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/llm/token_usage_es_service.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/llm/token_usage_mysql_service.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/llm/token_utils.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/llm/usage_token.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/logging/__init__.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/logging/async_sql_logger.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/logging/kafka_log.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/logging/logger_levels.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/logging/logger_wrapper.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/logging/process_logger.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/logging/sql_logger.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/mcp_server/__init__.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/mcp_server/server.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/middleware/__init__.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/middleware/context.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/middleware/cors.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/middleware/docs.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/middleware/exception.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/middleware/middleware.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/middleware/monitor_memory.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/middleware/mq.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/middleware/sandbox.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/middleware/timeout.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/middleware/token_tracking.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/middleware/tool_result_truncation.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/middleware/traceid.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/models/__init__.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/models/base_http.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/models/log.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/models/mcp_server_config.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/models/mqlistener_config.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/models/mqmsg_model.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/models/mqsend_config.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/models/sandbox.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/models/sso_user.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/models/token_usage.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/models/token_usage_mysql.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/models/xxljob_handler_config.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/notice/__init__.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/notice/uvicorn_monitor.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/notice/wecom_message.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/rabbitmq/process_pool_consumer.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/rabbitmq/rabbitmq_client.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/rabbitmq/rabbitmq_pool.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/rabbitmq/rabbitmq_service.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/rabbitmq/rabbitmq_service_client_manager.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/rabbitmq/rabbitmq_service_connection_monitor.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/rabbitmq/rabbitmq_service_consumer_manager.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/rabbitmq/rabbitmq_service_core.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/rabbitmq/rabbitmq_service_producer_manager.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/sentry/__init__.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/sentry/sy_sentry.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/services.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/sse/__init__.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/sse/event.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/sse/sse.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/synacos/__init__.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/synacos/example.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/synacos/example2.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/synacos/feign.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/synacos/feign_client.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/synacos/nacos_client_base.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/synacos/nacos_config_manager.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/synacos/nacos_heartbeat_manager.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/synacos/nacos_service.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/synacos/nacos_service_discovery.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/synacos/nacos_service_registration.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/synacos/param.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/tests/deep_agent_server.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/tests/test_consumer_loss_rootcause.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/tests/test_consumer_recovery.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/tests/test_deep_agent.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/tests/test_dynamic_max_tokens.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/tests/test_email.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/tests/test_encoding_cache.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/tests/test_fix_verification.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/tests/test_mcp_server.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/tests/test_minimax_reasoning.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/tests/test_mq.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/tests/test_oa_login.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/tests/test_real_summarization.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/tests/test_summarization_config.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/tests/test_summarization_real.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/tests/test_summary_leak_e2e.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/tools/__init__.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/tools/async_utils.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/tools/docs.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/tools/env.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/tools/merge_headers.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/tools/snowflake.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/tools/syemail.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/tools/timing.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/xxljob/__init__.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/xxljob/xxljob_service.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon_python_lib.egg-info/SOURCES.txt +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon_python_lib.egg-info/dependency_links.txt +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon_python_lib.egg-info/entry_points.txt +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon_python_lib.egg-info/requires.txt +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon_python_lib.egg-info/top_level.txt +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/tests/test_asyncio_logging.py +0 -0
- {sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/tests/test_sycli.py +0 -0
{sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/auth/wecom_ldap_service.py
RENAMED
|
@@ -73,7 +73,8 @@ class LDAPFullUser(BaseModel):
|
|
|
73
73
|
class WeComLDAPUser(BaseModel):
|
|
74
74
|
"""企微-LDAP 关联用户(最终返回结果)"""
|
|
75
75
|
|
|
76
|
-
wecom_userid: str # 企微 userid
|
|
76
|
+
wecom_userid: str # 企微 userid(明文工号,如 "0633")
|
|
77
|
+
employee_id: Optional[str] = None # 员工工号(与 wecom_userid 同值,语义更明确)
|
|
77
78
|
wecom_name: str # 企微中文名
|
|
78
79
|
wecom_english_name: Optional[str] = None # 企微英文名
|
|
79
80
|
wecom_departments: List[str] = [] # 企微部门列表
|
|
@@ -603,8 +604,9 @@ class WeComLDAPService(metaclass=SingletonMeta):
|
|
|
603
604
|
|
|
604
605
|
# 3. 合并返回
|
|
605
606
|
result = await self._build_wecom_ldap_user(user_data, ldap_index)
|
|
606
|
-
#
|
|
607
|
-
result.wecom_userid =
|
|
607
|
+
# 保留解码后的明文 userid(工号),而非原始密文
|
|
608
|
+
result.wecom_userid = decoded_userid
|
|
609
|
+
result.employee_id = decoded_userid
|
|
608
610
|
return result
|
|
609
611
|
|
|
610
612
|
async def get_all_users(self) -> List[WeComLDAPUser]:
|
|
@@ -623,6 +625,7 @@ class WeComLDAPService(metaclass=SingletonMeta):
|
|
|
623
625
|
results = []
|
|
624
626
|
for u in wecom_users:
|
|
625
627
|
result = await self._build_wecom_ldap_user(u, ldap_index)
|
|
628
|
+
result.employee_id = result.wecom_userid
|
|
626
629
|
results.append(result)
|
|
627
630
|
|
|
628
631
|
matched = sum(1 for r in results if r.matched)
|
|
@@ -671,3 +674,137 @@ class WeComLDAPService(metaclass=SingletonMeta):
|
|
|
671
674
|
if user.matched and user.ldap_user:
|
|
672
675
|
return user.ldap_user.username
|
|
673
676
|
return None
|
|
677
|
+
|
|
678
|
+
# ─── Redis 映射缓存 ───
|
|
679
|
+
|
|
680
|
+
# Redis key 前缀(保持与旧版 digital_work 命名兼容)
|
|
681
|
+
_UID_MAP_PREFIX = "digital_work:wecom_uid_map:"
|
|
682
|
+
_LDAP_TO_WECOM_PREFIX = "digital_work:ldap_to_wecom:"
|
|
683
|
+
_EMPLOYEE_ID_PREFIX = "digital_work:wecom_employee_id:"
|
|
684
|
+
_MAP_TTL = 7 * 24 * 3600 # 7 天
|
|
685
|
+
|
|
686
|
+
@staticmethod
|
|
687
|
+
def _get_redis():
|
|
688
|
+
"""获取 RedisService(懒加载)"""
|
|
689
|
+
from sycommon.database.redis_service import RedisService
|
|
690
|
+
return RedisService
|
|
691
|
+
|
|
692
|
+
async def _get_cached_mapping(self, wecom_userid: str) -> Optional[str]:
|
|
693
|
+
"""从 Redis 读取 wecom_userid -> unified_id 映射"""
|
|
694
|
+
try:
|
|
695
|
+
rs = self._get_redis()
|
|
696
|
+
val = await rs.get(f"{self._UID_MAP_PREFIX}{wecom_userid}")
|
|
697
|
+
if val:
|
|
698
|
+
return val
|
|
699
|
+
except Exception:
|
|
700
|
+
pass
|
|
701
|
+
return None
|
|
702
|
+
|
|
703
|
+
async def _set_cached_mapping(self, wecom_userid: str, unified_id: str):
|
|
704
|
+
"""将 wecom_userid <-> unified_id 双向映射写入 Redis,同时保存工号"""
|
|
705
|
+
try:
|
|
706
|
+
rs = self._get_redis()
|
|
707
|
+
# 正向: wecom_userid -> unified_id (LDAP sAMAccountName)
|
|
708
|
+
await rs.set(
|
|
709
|
+
f"{self._UID_MAP_PREFIX}{wecom_userid}",
|
|
710
|
+
unified_id,
|
|
711
|
+
ex=self._MAP_TTL,
|
|
712
|
+
)
|
|
713
|
+
# 反向: unified_id -> wecom_userid(用于定时任务等主动推送场景)
|
|
714
|
+
await rs.set(
|
|
715
|
+
f"{self._LDAP_TO_WECOM_PREFIX}{unified_id}",
|
|
716
|
+
wecom_userid,
|
|
717
|
+
ex=self._MAP_TTL,
|
|
718
|
+
)
|
|
719
|
+
# 员工工号: unified_id -> wecom_userid(即工号,如 "0633")
|
|
720
|
+
await rs.set(
|
|
721
|
+
f"{self._EMPLOYEE_ID_PREFIX}{unified_id}",
|
|
722
|
+
wecom_userid,
|
|
723
|
+
ex=self._MAP_TTL,
|
|
724
|
+
)
|
|
725
|
+
except Exception as e:
|
|
726
|
+
SYLogger.warning(f"[WeComLDAP] 缓存映射到 Redis 失败: {e}")
|
|
727
|
+
|
|
728
|
+
async def resolve_unified_user_id(self, wecom_userid: str) -> str:
|
|
729
|
+
"""将企微 userid 解析为统一 user_id(LDAP sAMAccountName)
|
|
730
|
+
|
|
731
|
+
优先从 Redis 缓存读取,缓存未命中时查 LDAP 并写入 Redis。
|
|
732
|
+
匹配到 LDAP 返回 sAMAccountName,否则直接使用企微 userid。
|
|
733
|
+
|
|
734
|
+
Args:
|
|
735
|
+
wecom_userid: 企微用户ID(如 "0633"、密文 open_userid)
|
|
736
|
+
|
|
737
|
+
Returns:
|
|
738
|
+
统一 user_id(小写,如 "osulcode.xiao")
|
|
739
|
+
"""
|
|
740
|
+
# 1. 查 Redis 缓存
|
|
741
|
+
cached = await self._get_cached_mapping(wecom_userid)
|
|
742
|
+
if cached:
|
|
743
|
+
return cached
|
|
744
|
+
|
|
745
|
+
# 2. 查企微 + LDAP
|
|
746
|
+
unified_id = wecom_userid
|
|
747
|
+
employee_id = wecom_userid # 默认用工号就是原始 userid
|
|
748
|
+
try:
|
|
749
|
+
result = await self.get_user_info(wecom_userid)
|
|
750
|
+
employee_id = result.wecom_userid # get_user_info 返回解码后的明文工号
|
|
751
|
+
if result.matched and result.ldap_user and result.ldap_user.username:
|
|
752
|
+
unified_id = result.ldap_user.username
|
|
753
|
+
SYLogger.info(
|
|
754
|
+
f"[WeComLDAP] 用户映射: wecom={wecom_userid} -> ldap={unified_id}")
|
|
755
|
+
else:
|
|
756
|
+
SYLogger.info(
|
|
757
|
+
f"[WeComLDAP] 用户映射: wecom={wecom_userid} -> 未匹配LDAP,回退={unified_id}")
|
|
758
|
+
except Exception as e:
|
|
759
|
+
SYLogger.warning(
|
|
760
|
+
f"[WeComLDAP] 解析统一 user_id 失败: wecom_userid={wecom_userid}, error={e}")
|
|
761
|
+
|
|
762
|
+
# 3. 写入 Redis 缓存(统一小写)
|
|
763
|
+
unified_id = unified_id.lower().replace(" ", "")
|
|
764
|
+
await self._set_cached_mapping(employee_id, unified_id)
|
|
765
|
+
|
|
766
|
+
return unified_id
|
|
767
|
+
|
|
768
|
+
async def get_employee_id(self, unified_id: str) -> Optional[str]:
|
|
769
|
+
"""从 Redis 获取企微员工工号
|
|
770
|
+
|
|
771
|
+
Args:
|
|
772
|
+
unified_id: 统一用户 ID(LDAP sAMAccountName,如 "osulcode.xiao")
|
|
773
|
+
|
|
774
|
+
Returns:
|
|
775
|
+
员工工号(如 "0633"),未找到返回 None
|
|
776
|
+
"""
|
|
777
|
+
try:
|
|
778
|
+
rs = self._get_redis()
|
|
779
|
+
uid = unified_id.lower().replace(" ", "")
|
|
780
|
+
val = await rs.get(f"{self._EMPLOYEE_ID_PREFIX}{uid}")
|
|
781
|
+
if val:
|
|
782
|
+
return val
|
|
783
|
+
except Exception:
|
|
784
|
+
pass
|
|
785
|
+
return None
|
|
786
|
+
|
|
787
|
+
async def batch_set_uid_mapping(self, mapping: dict[str, str]):
|
|
788
|
+
"""批量写入企微-LDAP 映射到 Redis(pipeline 优化,含反向映射和工号)
|
|
789
|
+
|
|
790
|
+
Args:
|
|
791
|
+
mapping: {wecom_userid: unified_id, ...}
|
|
792
|
+
"""
|
|
793
|
+
if not mapping:
|
|
794
|
+
return
|
|
795
|
+
try:
|
|
796
|
+
rs = self._get_redis()
|
|
797
|
+
client = rs.get_client()
|
|
798
|
+
async with client.pipeline(transaction=True) as pipe:
|
|
799
|
+
for wecom_userid, unified_id in mapping.items():
|
|
800
|
+
uid = unified_id.lower().replace(" ", "")
|
|
801
|
+
# 正向
|
|
802
|
+
pipe.set(f"{self._UID_MAP_PREFIX}{wecom_userid}", uid, ex=self._MAP_TTL)
|
|
803
|
+
# 反向
|
|
804
|
+
pipe.set(f"{self._LDAP_TO_WECOM_PREFIX}{uid}", wecom_userid, ex=self._MAP_TTL)
|
|
805
|
+
# 员工工号
|
|
806
|
+
pipe.set(f"{self._EMPLOYEE_ID_PREFIX}{uid}", wecom_userid, ex=self._MAP_TTL)
|
|
807
|
+
await pipe.execute()
|
|
808
|
+
logging.info(f"[WeComLDAP] 批量写入 {len(mapping)} 条映射到 Redis")
|
|
809
|
+
except Exception as e:
|
|
810
|
+
SYLogger.warning(f"[WeComLDAP] 批量缓存映射到 Redis 失败: {e}")
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/command/templates/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/command/templates/agent/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/command/templates/agent/app.py.tpl
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/command/templates/base/.env.tpl
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/command/templates/base/README.md.tpl
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/command/templates/base/__init__.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/command/templates/base/app.py.tpl
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/command/templates/base/app.yaml.tpl
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/command/templates/cli/README.md.tpl
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/command/templates/cli/__init__.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/command/templates/cli/app.py.tpl
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/command/templates/web/README.md.tpl
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/command/templates/web/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/command/templates/web/app.py.tpl
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycli/cdp/capabilities/__init__.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycli/cdp/capabilities/console.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycli/cdp/capabilities/dom.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycli/cdp/capabilities/network.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycli/cdp/capabilities/screenshot.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.6a0 → sycommon_python_lib-0.2.6a1}/src/sycli/commands/create_cmd.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycli/commands/evaluate_cmd.py
RENAMED
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycli/commands/memory_cmd.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycli/commands/resume_cmd.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycli/commands/rollback_cmd.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycli/core/git_integration.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycli/evaluate/api_evaluator.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycli/models/config_models.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycli/rl/optimization_logger.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycli/rl/strategy_generator.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycli/rl/strategy_prompts.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/agent/agent_manager.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/agent/chat_events.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/agent/deep_agent.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/agent/mcp/__init__.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/agent/mcp/models.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/agent/mcp/tool_loader.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/agent/multi_agent_team.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/agent/sandbox/__init__.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/agent/sandbox/file_ops.py
RENAMED
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/agent/sandbox/minio_sync.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/agent/sandbox/session.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/auth/ldap_service.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/config/DatabaseConfig.py
RENAMED
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/config/EmbeddingConfig.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/config/LLMConfig.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.6a0 → sycommon_python_lib-0.2.6a1}/src/sycommon/config/LangfuseConfig.py
RENAMED
|
File without changes
|
|
File without changes
|