sycommon-python-lib 0.2.0b32__tar.gz → 0.2.1b0__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.
Files changed (161) hide show
  1. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/PKG-INFO +1 -1
  2. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/pyproject.toml +1 -1
  3. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/tests/deep_agent_server.py +1 -1
  4. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/tests/test_deep_agent.py +2 -2
  5. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/tools/merge_headers.py +21 -3
  6. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon_python_lib.egg-info/PKG-INFO +1 -1
  7. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon_python_lib.egg-info/SOURCES.txt +0 -2
  8. sycommon_python_lib-0.2.0b32/src/sycommon/tests/skills/web-search/helpers/formatter.py +0 -207
  9. sycommon_python_lib-0.2.0b32/src/sycommon/tests/skills/web-search/helpers/query_builder.py +0 -144
  10. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/README.md +0 -0
  11. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/setup.cfg +0 -0
  12. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/command/__init__.py +0 -0
  13. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/command/cli.py +0 -0
  14. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/command/core/__init__.py +0 -0
  15. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/command/core/console.py +0 -0
  16. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/command/core/models.py +0 -0
  17. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/command/core/project.py +0 -0
  18. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/command/core/utils.py +0 -0
  19. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/command/templates/__init__.py +0 -0
  20. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/command/templates/agent/__init__.py +0 -0
  21. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/command/templates/base/__init__.py +0 -0
  22. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/command/templates/web/__init__.py +0 -0
  23. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/__init__.py +0 -0
  24. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/agent/__init__.py +0 -0
  25. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/agent/examples/01_basic_agent.py +0 -0
  26. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/agent/examples/02_tool_agent.py +0 -0
  27. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/agent/examples/03_structured_output.py +0 -0
  28. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/agent/examples/04_memory_agent.py +0 -0
  29. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/agent/examples/05_streaming.py +0 -0
  30. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/agent/examples/06_multi_agent.py +0 -0
  31. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/agent/examples/07_skills_agent.py +0 -0
  32. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/agent/examples/08_middleware.py +0 -0
  33. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/agent/examples/09_interrupt.py +0 -0
  34. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/agent/examples/10_custom_llm.py +0 -0
  35. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/agent/examples/11_complex_workflow.py +0 -0
  36. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/agent/examples/12_batch_processing.py +0 -0
  37. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/agent/examples/__init__.py +0 -0
  38. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/agent/examples/middleware/01_basic_monitoring.py +0 -0
  39. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/agent/examples/middleware/02_permission_control.py +0 -0
  40. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/agent/examples/middleware/03_tool_skill_filter.py +0 -0
  41. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/agent/examples/middleware/04_caching_retry.py +0 -0
  42. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/agent/examples/middleware/05_sanitization.py +0 -0
  43. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/agent/examples/middleware/06_tracking.py +0 -0
  44. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/agent/examples/middleware/07_advanced.py +0 -0
  45. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/agent/examples/middleware/08_progressive_skills.py +0 -0
  46. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/agent/examples/middleware/__init__.py +0 -0
  47. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/agent/examples/middleware/override_examples.py +0 -0
  48. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/agent/examples/virtual_employee_demo.py +0 -0
  49. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/agent/exports.py +0 -0
  50. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/agent/get_agent.py +0 -0
  51. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/agent/skills/__init__.py +0 -0
  52. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/agent/skills/examples/faq_handler/scripts/search.py +0 -0
  53. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/agent/skills/exports.py +0 -0
  54. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/agent/virtual_employee.py +0 -0
  55. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/config/Config.py +0 -0
  56. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/config/DatabaseConfig.py +0 -0
  57. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/config/ElasticsearchConfig.py +0 -0
  58. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/config/EmbeddingConfig.py +0 -0
  59. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/config/LLMConfig.py +0 -0
  60. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/config/LangfuseConfig.py +0 -0
  61. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/config/MQConfig.py +0 -0
  62. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/config/RedisConfig.py +0 -0
  63. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/config/RerankerConfig.py +0 -0
  64. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/config/SentryConfig.py +0 -0
  65. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/config/__init__.py +0 -0
  66. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/database/async_base_db_service.py +0 -0
  67. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/database/async_database_service.py +0 -0
  68. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/database/base_db_service.py +0 -0
  69. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/database/database_service.py +0 -0
  70. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/database/elasticsearch_service.py +0 -0
  71. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/database/redis_service.py +0 -0
  72. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/database/token_usage_db_service.py +0 -0
  73. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/health/__init__.py +0 -0
  74. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/health/health_check.py +0 -0
  75. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/health/metrics.py +0 -0
  76. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/health/ping.py +0 -0
  77. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/heartbeat_process/__init__.py +0 -0
  78. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/heartbeat_process/heartbeat_config.py +0 -0
  79. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/heartbeat_process/heartbeat_process_manager.py +0 -0
  80. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/heartbeat_process/heartbeat_process_worker.py +0 -0
  81. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/llm/__init__.py +0 -0
  82. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/llm/embedding.py +0 -0
  83. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/llm/get_llm.py +0 -0
  84. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/llm/llm_logger.py +0 -0
  85. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/llm/llm_tokens.py +0 -0
  86. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/llm/llm_with_token_tracking.py +0 -0
  87. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/llm/native_with_fallback_runnable.py +0 -0
  88. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/llm/output_fixing_runnable.py +0 -0
  89. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/llm/struct_token.py +0 -0
  90. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/llm/sy_langfuse.py +0 -0
  91. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/llm/token_usage_es_service.py +0 -0
  92. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/llm/token_usage_mysql_service.py +0 -0
  93. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/llm/usage_token.py +0 -0
  94. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/logging/__init__.py +0 -0
  95. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/logging/async_sql_logger.py +0 -0
  96. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/logging/kafka_log.py +0 -0
  97. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/logging/logger_levels.py +0 -0
  98. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/logging/logger_wrapper.py +0 -0
  99. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/logging/process_logger.py +0 -0
  100. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/logging/sql_logger.py +0 -0
  101. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/middleware/__init__.py +0 -0
  102. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/middleware/context.py +0 -0
  103. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/middleware/cors.py +0 -0
  104. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/middleware/docs.py +0 -0
  105. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/middleware/exception.py +0 -0
  106. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/middleware/middleware.py +0 -0
  107. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/middleware/monitor_memory.py +0 -0
  108. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/middleware/mq.py +0 -0
  109. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/middleware/timeout.py +0 -0
  110. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/middleware/traceid.py +0 -0
  111. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/models/__init__.py +0 -0
  112. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/models/base_http.py +0 -0
  113. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/models/log.py +0 -0
  114. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/models/mqlistener_config.py +0 -0
  115. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/models/mqmsg_model.py +0 -0
  116. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/models/mqsend_config.py +0 -0
  117. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/models/sso_user.py +0 -0
  118. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/models/token_usage.py +0 -0
  119. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/models/token_usage_mysql.py +0 -0
  120. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/notice/__init__.py +0 -0
  121. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/notice/uvicorn_monitor.py +0 -0
  122. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/rabbitmq/process_pool_consumer.py +0 -0
  123. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/rabbitmq/rabbitmq_client.py +0 -0
  124. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/rabbitmq/rabbitmq_pool.py +0 -0
  125. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/rabbitmq/rabbitmq_service.py +0 -0
  126. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/rabbitmq/rabbitmq_service_client_manager.py +0 -0
  127. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/rabbitmq/rabbitmq_service_connection_monitor.py +0 -0
  128. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/rabbitmq/rabbitmq_service_consumer_manager.py +0 -0
  129. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/rabbitmq/rabbitmq_service_core.py +0 -0
  130. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/rabbitmq/rabbitmq_service_producer_manager.py +0 -0
  131. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/sentry/__init__.py +0 -0
  132. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/sentry/sy_sentry.py +0 -0
  133. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/services.py +0 -0
  134. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/sse/__init__.py +0 -0
  135. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/sse/event.py +0 -0
  136. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/sse/sse.py +0 -0
  137. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/synacos/__init__.py +0 -0
  138. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/synacos/example.py +0 -0
  139. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/synacos/example2.py +0 -0
  140. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/synacos/feign.py +0 -0
  141. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/synacos/feign_client.py +0 -0
  142. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/synacos/nacos_client_base.py +0 -0
  143. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/synacos/nacos_config_manager.py +0 -0
  144. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/synacos/nacos_heartbeat_manager.py +0 -0
  145. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/synacos/nacos_service.py +0 -0
  146. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/synacos/nacos_service_discovery.py +0 -0
  147. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/synacos/nacos_service_registration.py +0 -0
  148. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/synacos/param.py +0 -0
  149. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/tests/test_email.py +0 -0
  150. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/tests/test_mq.py +0 -0
  151. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/tools/__init__.py +0 -0
  152. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/tools/async_utils.py +0 -0
  153. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/tools/docs.py +0 -0
  154. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/tools/env.py +0 -0
  155. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/tools/snowflake.py +0 -0
  156. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/tools/syemail.py +0 -0
  157. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon/tools/timing.py +0 -0
  158. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon_python_lib.egg-info/dependency_links.txt +0 -0
  159. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon_python_lib.egg-info/entry_points.txt +0 -0
  160. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon_python_lib.egg-info/requires.txt +0 -0
  161. {sycommon_python_lib-0.2.0b32 → sycommon_python_lib-0.2.1b0}/src/sycommon_python_lib.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sycommon-python-lib
3
- Version: 0.2.0b32
3
+ Version: 0.2.1b0
4
4
  Summary: Add your description here
5
5
  Requires-Python: >=3.11
6
6
  Description-Content-Type: text/markdown
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "sycommon-python-lib"
3
- version = "0.2.0b32"
3
+ version = "0.2.1b0"
4
4
  description = "Add your description here"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.11"
@@ -40,7 +40,7 @@ def create_sy_deep_agent():
40
40
  "/Users/osulcode.xiao/Desktop/shengye/backend/sycommon-python-lib/src/sycommon/tests/history"],
41
41
  checkpointer=MemorySaver(),
42
42
  system_prompt="""你是智能助手,使用中文和我对话。""",
43
- debug=True,
43
+ debug=False,
44
44
  )
45
45
 
46
46
 
@@ -48,7 +48,7 @@ def create_sy_deep_agent(
48
48
  store: BaseStore | None = None,
49
49
  backend: BackendProtocol | BackendFactory | None = None,
50
50
  interrupt_on: dict[str, bool | InterruptOnConfig] | None = None,
51
- debug: bool = True,
51
+ debug: bool = False,
52
52
  name: str | None = None,
53
53
  cache: BaseCache | None = None,
54
54
  ) -> CompiledStateGraph:
@@ -87,7 +87,7 @@ async def skills_demo():
87
87
  fs_backend = FilesystemBackend(
88
88
  root_dir="/Users/osulcode.xiao/Desktop/shengye/backend/sycommon-python-lib/src/sycommon/tests/data", virtual_mode=True)
89
89
  shell_backend = LocalShellBackend(
90
- root_dir=".", env={"PATH": "/usr/bin:/bin"})
90
+ root_dir=".", env={"PATH": "/usr/bin:/bin"}, max_output_bytes=1000_000)
91
91
 
92
92
  # composite_backend = CompositeBackend(
93
93
  # default=fs_backend,
@@ -102,16 +102,34 @@ def get_header_value(headers: list, target_key: str, default=None):
102
102
  从列表中查找指定 header 的值
103
103
 
104
104
  Args:
105
- headers: header 列表,例如 [('Content-Type', 'application/json'), ...]
105
+ headers: header 列表,例如 [('Content-Type', 'application/json'), ...] 或 [(b'Content-Type', b'application/json'), ...]
106
106
  target_key: 要查找的 key
107
107
  default: 如果没找到返回的默认值
108
108
  """
109
109
  if not headers:
110
110
  return default
111
111
 
112
+ target_key_lower = target_key.lower()
113
+
112
114
  for item in headers:
113
115
  # 兼容 list 和 tuple,确保长度为2
114
- if isinstance(item, (list, tuple)) and len(item) == 2 and item[0] == target_key:
115
- return item[1]
116
+ if isinstance(item, (list, tuple)) and len(item) == 2:
117
+ key = item[0]
118
+ # 处理 bytes 类型的 key
119
+ if isinstance(key, bytes):
120
+ try:
121
+ key = key.decode('utf-8')
122
+ except Exception:
123
+ continue
124
+ # 统一转小写比较(大小写不敏感)
125
+ if isinstance(key, str) and key.lower() == target_key_lower:
126
+ value = item[1]
127
+ # 处理 bytes 类型的 value
128
+ if isinstance(value, bytes):
129
+ try:
130
+ value = value.decode('utf-8')
131
+ except Exception:
132
+ pass
133
+ return value
116
134
 
117
135
  return default
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sycommon-python-lib
3
- Version: 0.2.0b32
3
+ Version: 0.2.1b0
4
4
  Summary: Add your description here
5
5
  Requires-Python: >=3.11
6
6
  Description-Content-Type: text/markdown
@@ -141,8 +141,6 @@ src/sycommon/tests/deep_agent_server.py
141
141
  src/sycommon/tests/test_deep_agent.py
142
142
  src/sycommon/tests/test_email.py
143
143
  src/sycommon/tests/test_mq.py
144
- src/sycommon/tests/skills/web-search/helpers/formatter.py
145
- src/sycommon/tests/skills/web-search/helpers/query_builder.py
146
144
  src/sycommon/tools/__init__.py
147
145
  src/sycommon/tools/async_utils.py
148
146
  src/sycommon/tools/docs.py
@@ -1,207 +0,0 @@
1
- #!/usr/bin/env python3
2
- """
3
- 搜索结果格式化器
4
- 将搜索结果格式化为结构化的 Markdown 输出
5
- """
6
-
7
- from dataclasses import dataclass
8
- from datetime import datetime
9
- from typing import List, Optional
10
-
11
-
12
- @dataclass
13
- class SearchResult:
14
- """单个搜索结果"""
15
- title: str
16
- url: str
17
- snippet: str
18
- source: Optional[str] = None
19
- date: Optional[str] = None
20
-
21
-
22
- @dataclass
23
- class SearchReport:
24
- """搜索报告"""
25
- query: str
26
- results: List[SearchResult]
27
- key_findings: List[str]
28
- summary: str
29
- timestamp: str = None
30
-
31
- def __post_init__(self):
32
- if self.timestamp is None:
33
- self.timestamp = datetime.now().strftime("%Y-%m-%d %H:%M")
34
-
35
-
36
- def format_search_report(
37
- query: str,
38
- results: List[SearchResult],
39
- key_findings: List[str],
40
- summary: str,
41
- suggestions: Optional[List[str]] = None
42
- ) -> str:
43
- """
44
- 格式化搜索报告为 Markdown
45
-
46
- Args:
47
- query: 原始搜索查询
48
- results: 搜索结果列表
49
- key_findings: 关键发现列表
50
- summary: 总结文本
51
- suggestions: 后续建议(可选)
52
-
53
- Returns:
54
- Markdown 格式的报告
55
- """
56
- lines = []
57
-
58
- # 标题
59
- lines.append(f"## 搜索结果: {query}")
60
- lines.append("")
61
- lines.append(f"> 搜索时间: {datetime.now().strftime('%Y-%m-%d %H:%M')}")
62
- lines.append("")
63
-
64
- # 关键发现
65
- lines.append("### 🔍 关键发现")
66
- lines.append("")
67
- for i, finding in enumerate(key_findings, 1):
68
- lines.append(f"{i}. {finding}")
69
- lines.append("")
70
-
71
- # 详细总结
72
- lines.append("### 📝 详细信息")
73
- lines.append("")
74
- lines.append(summary)
75
- lines.append("")
76
-
77
- # 来源列表
78
- lines.append("### 📚 来源")
79
- lines.append("")
80
- for i, result in enumerate(results, 1):
81
- source_info = f"**{result.title}**"
82
- if result.date:
83
- source_info += f" ({result.date})"
84
- lines.append(f"{i}. [{source_info}]({result.url})")
85
- if result.snippet:
86
- lines.append(f" > {result.snippet}")
87
- lines.append("")
88
-
89
- # 后续建议
90
- if suggestions:
91
- lines.append("### 💡 建议")
92
- lines.append("")
93
- for suggestion in suggestions:
94
- lines.append(f"- {suggestion}")
95
- lines.append("")
96
-
97
- return "\n".join(lines)
98
-
99
-
100
- def format_quick_result(
101
- query: str,
102
- answer: str,
103
- sources: List[SearchResult]
104
- ) -> str:
105
- """
106
- 格式化快速回答
107
-
108
- Args:
109
- query: 搜索查询
110
- answer: 直接回答
111
- sources: 来源列表
112
-
113
- Returns:
114
- Markdown 格式的快速结果
115
- """
116
- lines = []
117
-
118
- lines.append(f"### {query}")
119
- lines.append("")
120
- lines.append(answer)
121
- lines.append("")
122
-
123
- if sources:
124
- lines.append("**来源:**")
125
- for source in sources[:3]: # 最多显示3个来源
126
- lines.append(f"- [{source.title}]({source.url})")
127
-
128
- return "\n".join(lines)
129
-
130
-
131
- def format_comparison(
132
- topic: str,
133
- items: List[dict]
134
- ) -> str:
135
- """
136
- 格式化对比表格
137
-
138
- Args:
139
- topic: 对比主题
140
- items: 对比项列表,每项包含 name 和多个属性
141
-
142
- Returns:
143
- Markdown 格式的对比表格
144
- """
145
- lines = []
146
-
147
- lines.append(f"### {topic} 对比")
148
- lines.append("")
149
-
150
- if not items:
151
- return "暂无对比数据"
152
-
153
- # 获取所有属性名
154
- all_keys = set()
155
- for item in items:
156
- all_keys.update(item.keys())
157
- all_keys.discard("name")
158
- headers = ["名称"] + sorted(all_keys)
159
-
160
- # 表头
161
- lines.append("| " + " | ".join(headers) + " |")
162
- lines.append("| " + " | ".join(["---"] * len(headers)) + " |")
163
-
164
- # 表格内容
165
- for item in items:
166
- row = [item.get("name", "")]
167
- for key in sorted(all_keys):
168
- row.append(str(item.get(key, "-")))
169
- lines.append("| " + " | ".join(row) + " |")
170
-
171
- return "\n".join(lines)
172
-
173
-
174
- # 示例用法
175
- if __name__ == "__main__":
176
- # 示例搜索结果
177
- results = [
178
- SearchResult(
179
- title="Python 官方文档 - 异步编程",
180
- url="https://docs.python.org/3/library/asyncio.html",
181
- snippet="Python 的异步 I/O 框架,提供编写并发代码的基础设施",
182
- source="docs.python.org",
183
- date="2024"
184
- ),
185
- SearchResult(
186
- title="异步编程最佳实践",
187
- url="https://example.com/async-best-practices",
188
- snippet="介绍 Python 异步编程的常见模式和反模式",
189
- source="example.com"
190
- )
191
- ]
192
-
193
- # 格式化完整报告
194
- print(format_search_report(
195
- query="Python async/await 教程",
196
- results=results,
197
- key_findings=[
198
- "asyncio 是 Python 标准库中的异步框架",
199
- "使用 async def 定义协程函数",
200
- "await 用于等待异步操作完成"
201
- ],
202
- summary="Python 的异步编程通过 asyncio 库实现,使用 async/await 语法。\n主要适用于 I/O 密集型任务,可以显著提高并发性能。",
203
- suggestions=[
204
- "深入了解 asyncio 的事件循环机制",
205
- "学习如何处理异步上下文中的异常"
206
- ]
207
- ))
@@ -1,144 +0,0 @@
1
- #!/usr/bin/env python3
2
- """
3
- 搜索查询构建器
4
- 帮助构建优化的搜索查询字符串
5
- """
6
-
7
- from typing import List, Optional
8
- from urllib.parse import quote
9
-
10
-
11
- class SearchQueryBuilder:
12
- """构建优化的搜索查询"""
13
-
14
- def __init__(self):
15
- self.keywords: List[str] = []
16
- self.exact_phrases: List[str] = []
17
- self.exclude_terms: List[str] = []
18
- self.site_limits: List[str] = []
19
- self.file_types: Optional[str] = None
20
-
21
- def add_keyword(self, keyword: str) -> "SearchQueryBuilder":
22
- """添加关键词"""
23
- self.keywords.append(keyword)
24
- return self
25
-
26
- def add_exact_phrase(self, phrase: str) -> "SearchQueryBuilder":
27
- """添加精确短语(会用引号包裹)"""
28
- self.exact_phrases.append(phrase)
29
- return self
30
-
31
- def exclude(self, term: str) -> "SearchQueryBuilder":
32
- """排除词(添加减号前缀)"""
33
- self.exclude_terms.append(term)
34
- return self
35
-
36
- def limit_to_site(self, site: str) -> "SearchQueryBuilder":
37
- """限定搜索站点"""
38
- self.site_limits.append(site)
39
- return self
40
-
41
- def set_file_type(self, file_type: str) -> "SearchQueryBuilder":
42
- """限定文件类型(如 pdf, doc)"""
43
- self.file_type = file_type
44
- return self
45
-
46
- def build(self) -> str:
47
- """构建最终搜索查询字符串"""
48
- parts = []
49
-
50
- # 添加关键词
51
- parts.extend(self.keywords)
52
-
53
- # 添加精确短语
54
- for phrase in self.exact_phrases:
55
- parts.append(f'"{phrase}"')
56
-
57
- # 添加排除词
58
- for term in self.exclude_terms:
59
- parts.append(f"-{term}")
60
-
61
- # 添加站点限制
62
- for site in self.site_limits:
63
- parts.append(f"site:{site}")
64
-
65
- # 添加文件类型
66
- if self.file_type:
67
- parts.append(f"filetype:{self.file_type}")
68
-
69
- return " ".join(parts)
70
-
71
- def build_url_encoded(self) -> str:
72
- """构建 URL 编码的查询字符串"""
73
- return quote(self.build())
74
-
75
- def reset(self) -> "SearchQueryBuilder":
76
- """重置所有条件"""
77
- self.keywords = []
78
- self.exact_phrases = []
79
- self.exclude_terms = []
80
- self.site_limits = []
81
- self.file_types = None
82
- return self
83
-
84
-
85
- def quick_search(query: str, site: Optional[str] = None) -> str:
86
- """
87
- 快速构建搜索查询
88
-
89
- Args:
90
- query: 搜索内容
91
- site: 可选的站点限制
92
-
93
- Returns:
94
- 优化后的搜索字符串
95
- """
96
- builder = SearchQueryBuilder()
97
- builder.add_keyword(query)
98
- if site:
99
- builder.limit_to_site(site)
100
- return builder.build()
101
-
102
-
103
- # 示例用法
104
- if __name__ == "__main__":
105
- # 示例1: 简单搜索
106
- print("简单搜索:")
107
- builder = SearchQueryBuilder()
108
- builder.add_keyword("Python").add_keyword("async").add_keyword("tutorial")
109
- print(f" {builder.build()}")
110
-
111
- # 示例2: 精确短语搜索
112
- print("\n精确短语搜索:")
113
- builder.reset()
114
- builder.add_exact_phrase("machine learning").add_keyword("beginner")
115
- print(f" {builder.build()}")
116
-
117
- # 示例3: 站内搜索
118
- print("\n站内搜索:")
119
- builder.reset()
120
- builder.add_keyword("async await").limit_to_site("docs.python.org")
121
- print(f" {builder.build()}")
122
-
123
- # 示例4: 排除搜索
124
- print("\n排除搜索:")
125
- builder.reset()
126
- builder.add_keyword("python").exclude("snake").exclude("monty")
127
- print(f" {builder.build()}")
128
-
129
- # 示例5: 文件类型搜索
130
- print("\n文件类型搜索:")
131
- builder.reset()
132
- builder.add_keyword("API documentation").set_file_type("pdf")
133
- print(f" {builder.build()}")
134
-
135
- # 示例6: 复杂组合
136
- print("\n复杂组合搜索:")
137
- builder.reset()
138
- (builder
139
- .add_keyword("Docker")
140
- .add_keyword("compose")
141
- .add_exact_phrase("best practices")
142
- .exclude("windows")
143
- .limit_to_site("docs.docker.com"))
144
- print(f" {builder.build()}")