coding-proxy 0.4.1a12__tar.gz → 0.5.0__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 (194) hide show
  1. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/AGENTS.md +3 -2
  2. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/CHANGELOG.md +23 -1
  3. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/PKG-INFO +1 -1
  4. coding_proxy-0.5.0/assets/model-calling-v0.5.0.png +0 -0
  5. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/pyproject.toml +1 -1
  6. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/uv.lock +1 -1
  7. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/.github/workflows/ci.yml +0 -0
  8. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/.github/workflows/coverage.yml +0 -0
  9. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/.github/workflows/release.yml +0 -0
  10. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/.gitignore +0 -0
  11. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/.pre-commit-config.yaml +0 -0
  12. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/CLAUDE.md +0 -0
  13. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/LICENSE +0 -0
  14. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/README.md +0 -0
  15. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/assets/dashboard-v0.4.0.png +0 -0
  16. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/assets/session-v0.4.0.png +0 -0
  17. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/docs/agents/browser-validation.md +0 -0
  18. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/docs/agents/issue.md +0 -0
  19. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/docs/agents/knowledge-map.md +0 -0
  20. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/docs/agents/reference-specifications.md +0 -0
  21. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/docs/arch/config-reference.md +0 -0
  22. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/docs/arch/convert.md +0 -0
  23. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/docs/arch/design-patterns.md +0 -0
  24. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/docs/arch/routing.md +0 -0
  25. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/docs/arch/testing.md +0 -0
  26. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/docs/arch/vendors.md +0 -0
  27. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/docs/framework.md +0 -0
  28. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/docs/guide/api-reference.md +0 -0
  29. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/docs/guide/cli-reference.md +0 -0
  30. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/docs/guide/dashboard.md +0 -0
  31. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/docs/guide/monitoring.md +0 -0
  32. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/docs/guide/quickstart.md +0 -0
  33. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/docs/guide/vendors.md +0 -0
  34. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/docs/ops/ci-cd.md +0 -0
  35. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/docs/user-guide.md +0 -0
  36. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/docs/zh-CN/README.md +0 -0
  37. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/__init__.py +0 -0
  38. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/__init__.py +0 -0
  39. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/__main__.py +0 -0
  40. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/auth/__init__.py +0 -0
  41. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/auth/providers/__init__.py +0 -0
  42. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/auth/providers/base.py +0 -0
  43. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/auth/providers/github.py +0 -0
  44. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/auth/providers/google.py +0 -0
  45. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/auth/runtime.py +0 -0
  46. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/auth/store.py +0 -0
  47. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/cli/__init__.py +0 -0
  48. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/cli/auth_commands.py +0 -0
  49. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/cli/banner.py +0 -0
  50. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/compat/__init__.py +0 -0
  51. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/compat/canonical.py +0 -0
  52. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/compat/session_store.py +0 -0
  53. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/config/__init__.py +0 -0
  54. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/config/auth_schema.py +0 -0
  55. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/config/config.default.yaml +0 -0
  56. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/config/loader.py +0 -0
  57. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/config/resiliency.py +0 -0
  58. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/config/routing.py +0 -0
  59. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/config/schema.py +0 -0
  60. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/config/server.py +0 -0
  61. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/config/session_policy.py +0 -0
  62. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/config/vendors.py +0 -0
  63. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/convert/__init__.py +0 -0
  64. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/convert/anthropic_to_gemini.py +0 -0
  65. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/convert/anthropic_to_openai.py +0 -0
  66. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/convert/gemini_sse_adapter.py +0 -0
  67. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/convert/gemini_to_anthropic.py +0 -0
  68. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/convert/openai_to_anthropic.py +0 -0
  69. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/convert/vendor_channels.py +0 -0
  70. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/logging/__init__.py +0 -0
  71. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/logging/db.py +0 -0
  72. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/logging/formatters.py +0 -0
  73. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/logging/stats.py +0 -0
  74. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/model/__init__.py +0 -0
  75. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/model/auth.py +0 -0
  76. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/model/compat.py +0 -0
  77. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/model/constants.py +0 -0
  78. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/model/pricing.py +0 -0
  79. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/model/token.py +0 -0
  80. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/model/vendor.py +0 -0
  81. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/native_api/__init__.py +0 -0
  82. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/native_api/config.py +0 -0
  83. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/native_api/extractors/__init__.py +0 -0
  84. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/native_api/extractors/anthropic.py +0 -0
  85. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/native_api/extractors/gemini.py +0 -0
  86. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/native_api/extractors/openai.py +0 -0
  87. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/native_api/handler.py +0 -0
  88. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/native_api/operation.py +0 -0
  89. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/native_api/routes.py +0 -0
  90. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/native_api/usage_registry.py +0 -0
  91. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/pricing.py +0 -0
  92. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/routing/__init__.py +0 -0
  93. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/routing/circuit_breaker.py +0 -0
  94. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/routing/error_classifier.py +0 -0
  95. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/routing/executor.py +0 -0
  96. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/routing/model_mapper.py +0 -0
  97. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/routing/quota_guard.py +0 -0
  98. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/routing/rate_limit.py +0 -0
  99. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/routing/retry.py +0 -0
  100. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/routing/router.py +0 -0
  101. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/routing/session_manager.py +0 -0
  102. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/routing/session_policy.py +0 -0
  103. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/routing/tier.py +0 -0
  104. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/routing/usage_parser.py +0 -0
  105. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/routing/usage_recorder.py +0 -0
  106. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/server/__init__.py +0 -0
  107. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/server/app.py +0 -0
  108. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/server/dashboard.py +0 -0
  109. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/server/factory.py +0 -0
  110. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/server/responses.py +0 -0
  111. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/server/routes.py +0 -0
  112. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/streaming/__init__.py +0 -0
  113. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/streaming/anthropic_compat.py +0 -0
  114. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/vendors/__init__.py +0 -0
  115. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/vendors/alibaba.py +0 -0
  116. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/vendors/anthropic.py +0 -0
  117. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/vendors/antigravity.py +0 -0
  118. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/vendors/base.py +0 -0
  119. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/vendors/concurrency.py +0 -0
  120. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/vendors/copilot.py +0 -0
  121. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/vendors/copilot_models.py +0 -0
  122. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/vendors/copilot_token_manager.py +0 -0
  123. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/vendors/copilot_urls.py +0 -0
  124. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/vendors/doubao.py +0 -0
  125. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/vendors/kimi.py +0 -0
  126. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/vendors/minimax.py +0 -0
  127. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/vendors/mixins.py +0 -0
  128. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/vendors/native_anthropic.py +0 -0
  129. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/vendors/token_manager.py +0 -0
  130. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/vendors/xiaomi.py +0 -0
  131. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/src/coding/proxy/vendors/zhipu.py +0 -0
  132. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/tests/__init__.py +0 -0
  133. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/tests/e2e/__init__.py +0 -0
  134. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/tests/e2e/conftest.py +0 -0
  135. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/tests/e2e/test_e2e_http.py +0 -0
  136. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/tests/e2e/test_e2e_token.py +0 -0
  137. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/tests/e2e/test_e2e_vendor.py +0 -0
  138. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/tests/test_antigravity.py +0 -0
  139. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/tests/test_app_routes.py +0 -0
  140. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/tests/test_auto_login.py +0 -0
  141. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/tests/test_banner.py +0 -0
  142. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/tests/test_circuit_breaker.py +0 -0
  143. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/tests/test_cli_usage.py +0 -0
  144. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/tests/test_compat.py +0 -0
  145. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/tests/test_config_init.py +0 -0
  146. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/tests/test_config_loader.py +0 -0
  147. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/tests/test_convert_request.py +0 -0
  148. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/tests/test_convert_response.py +0 -0
  149. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/tests/test_convert_sse.py +0 -0
  150. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/tests/test_copilot.py +0 -0
  151. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/tests/test_copilot_convert_request.py +0 -0
  152. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/tests/test_copilot_convert_response.py +0 -0
  153. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/tests/test_copilot_models.py +0 -0
  154. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/tests/test_copilot_urls.py +0 -0
  155. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/tests/test_currency.py +0 -0
  156. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/tests/test_error_classifier.py +0 -0
  157. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/tests/test_logging_dual_write.py +0 -0
  158. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/tests/test_mixins.py +0 -0
  159. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/tests/test_model_auth.py +0 -0
  160. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/tests/test_model_compat.py +0 -0
  161. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/tests/test_model_constants.py +0 -0
  162. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/tests/test_model_mapper.py +0 -0
  163. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/tests/test_model_pricing.py +0 -0
  164. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/tests/test_model_token.py +0 -0
  165. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/tests/test_model_vendor.py +0 -0
  166. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/tests/test_native_api_base_url_override.py +0 -0
  167. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/tests/test_native_api_extractors.py +0 -0
  168. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/tests/test_native_api_handler.py +0 -0
  169. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/tests/test_native_api_operation.py +0 -0
  170. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/tests/test_native_api_routes.py +0 -0
  171. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/tests/test_native_vendors.py +0 -0
  172. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/tests/test_parse_usage.py +0 -0
  173. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/tests/test_parse_usage_gemini.py +0 -0
  174. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/tests/test_pricing.py +0 -0
  175. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/tests/test_quota_guard.py +0 -0
  176. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/tests/test_rate_limit.py +0 -0
  177. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/tests/test_router_chain.py +0 -0
  178. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/tests/test_router_executor.py +0 -0
  179. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/tests/test_runtime_reauth.py +0 -0
  180. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/tests/test_schema.py +0 -0
  181. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/tests/test_session_aware.py +0 -0
  182. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/tests/test_streaming_anthropic_compat.py +0 -0
  183. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/tests/test_tier.py +0 -0
  184. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/tests/test_tiers_config.py +0 -0
  185. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/tests/test_time_range.py +0 -0
  186. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/tests/test_token_logger.py +0 -0
  187. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/tests/test_token_logger_native_columns.py +0 -0
  188. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/tests/test_token_manager.py +0 -0
  189. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/tests/test_types.py +0 -0
  190. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/tests/test_vendor_channels.py +0 -0
  191. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/tests/test_vendor_streaming.py +0 -0
  192. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/tests/test_vendors.py +0 -0
  193. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/tests/test_zhipu.py +0 -0
  194. {coding_proxy-0.4.1a12 → coding_proxy-0.5.0}/tests/test_zhipu_concurrency.py +0 -0
@@ -44,14 +44,15 @@
44
44
  1. **Python**: 严禁使用 pip/poetry,**必须**统一使用 `uv` 进行包管理与脚本执行(如 `uv run`);
45
45
  2. **JavaScript/TypeScript**: 严禁使用 npm/yarn,**必须**统一使用 `pnpm` 进行包管理与脚本执行;
46
46
  - **Database Management**: 谨慎操作,数据迁移、测试等操作严禁将现有数据删除,谨慎操作数据迁移的回滚,防止数据被清理。
47
+ - **In-depth and close to the facts**:系统且全面地进行问题的分析,深入贴近事实,如有疑问,需先发问,不要乱做决定。
47
48
  - **Browser Validation Protocol (浏览器验证准则)**:Agent 不得自行完成、绕过或模拟任何 OAuth / SSO 认证流程,所有登录态均来源于用户已认证的 Chrome 主 profile(真实用户登录态)。完整协议(连通性自检、凭证管理、E2E 集成、实机回归等)详见 [浏览器验证协议](./docs/agents/browser-validation.md);
48
49
  1. **安全红线**:禁止在 Sandbox 浏览器中跳转 Google 同意屏;禁止以模拟用户或第三方账号替代真实登录态;禁止要求用户在 chat 中粘贴密码、Cookie 或验证码;
49
50
  - **Knowledge Map (知识索引)**:项目所有文档索引统一维护在 [知识索引](./docs/agents/knowledge-map.md),并在文档目录变更时即时同步跟新;
50
51
  - **Documentation Standards (文档规范)**:
51
- 1. **Visual Documentation (图文并茂)**: 对于复杂逻辑,优先 **Mermaid Visualization Norms (Mermaid 可视化规范)**,构建“图文并茂”的直观文档;
52
+ 1. **Visual Documentation (图文并茂)**: 对于复杂逻辑,优先 **Mermaid Visualization Norms (Mermaid 可视化规范)**,构建”图文并茂”的直观文档;
52
53
  - **色彩语义与兼容性**:为图表节点配置具备语义辨识度的色彩,并确保在深色模式(Dark Mode)下具有极高的对比度与清晰度;
53
54
  - **逻辑模块化解构**:针对业务跨度较大的架构流程,强制采用 `subgraph` 容器进行层级解构与边界划分,以增强图表的自解说(Self-explaining)能力;
54
55
  2. **语言叙事**:用语精准,叙事完备,行文专业,聚焦核心,篇幅精炼,形象具体,体现真实作用与用户吸引性,字数恰当;
55
- 3. **Direct Hyperlinking (直接跳转)**: 在文档中提及 Repo 内其他资源(文档/代码)时,**必须**构建可跳转的相对路径链接(如 `[Doc Name](./path.md)`),严禁使用“死文本”引用,以降低信息检索熵;
56
+ 3. **Direct Hyperlinking (直接跳转)**: 在文档中提及 Repo 内其他资源(文档/代码)时,**必须**构建可跳转的相对路径链接(如 `[Doc Name](./path.md)`),严禁使用”死文本”引用,以降低信息检索熵;
56
57
  4. **实操截图**:文档需要引入必要的浏览器实操截图时,需自行通过默认浏览器打开相关页面,通过实操现场截图并保留到文档路径进行文档引用;
57
58
  - **Reference Specifications (IEEE)**:为保障工程决策的可追溯性与学术严谨性,核心引用需遵循 [reference-specifications.md](docs/agents/reference-specifications.md)IEEE 标准引用格式;
@@ -4,7 +4,29 @@
4
4
 
5
5
  ## [Unreleased]
6
6
 
7
- - feat(zhipu): 新增每模型并发限制(默认 3,可通过 `vendors[zhipu].concurrency` 配置),基于 `asyncio.Semaphore` 实现 FIFO 公平排队,流式与非流式共用同一槽位,与 429 重试机制兼容。
7
+ ## [v0.5.0](https://github.com/ThreeFish-AI/coding-proxy/releases/tag/v0.5.0) - 2026-05-27
8
+
9
+ > [!IMPORTANT]
10
+ >
11
+ > **🚀 Model Calling 实时状态!**
12
+ >
13
+ > 模型并发与排队深度一目了然,运行时动态调整每个模型并行度,预防 vendor 侧的 429 幺蛾子。
14
+
15
+ ![model-calling](assets/model-calling-v0.5.0.png)
16
+
17
+ ### ✨ 核心亮点
18
+
19
+ - feat(concurrency): 新增 Model Calling 实时状态模块,可视化每模型并发与排队深度,支持运行时动态修改每模型并行度 (#250) (#251)
20
+ - feat(zhipu): 新增每模型并发限制,默认 3 个并行请求 FIFO 排队 (#248)
21
+ - feat(zhipu): 为 429 Rate Limit 添加指数退避重试挽回机制 (#242)
22
+
23
+ ### 🔧 更多特性
24
+
25
+ - fix(antigravity): 修复 v1internal 模式检测逻辑并新增 E2E 测试; (#234)
26
+ - fix(routes): 修复 count_tokens 路由对 target_vendor.name 的错误属性访问; (#235)
27
+ - fix(vendor-channels): 修复 zhipu→anthropic 通道 tool_use/tool_result 配对漏洞; (#236)
28
+ - fix(native-api): 修复 Gemini :verb 路径中 %3A URL 编码导致上游 400 的兼容问题; (#237)
29
+ - fix(zhipu): 诊断首选 tier 语义拒绝降级问题,增强可观测性并提取跨供应商清洗共享函数 (#243)
8
30
 
9
31
  ## [v0.4.0](https://github.com/ThreeFish-AI/coding-proxy/releases/tag/v0.4.0) — 2026-05-01
10
32
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: coding-proxy
3
- Version: 0.4.1a12
3
+ Version: 0.5.0
4
4
  Summary: A High-Availability, Transparent, and Smart Multi-Vendor Proxy for Claude Code. Support Claude Plans, GitHub Copilot, Google Antigravity, ZAI/GLM, MiniMax, Qwen, Xiaomi, Kimi, Doubao...
5
5
  Project-URL: Source Code, https://github.com/ThreeFish-AI/coding-proxy
6
6
  Project-URL: User Guide, https://github.com/ThreeFish-AI/coding-proxy/blob/master/docs/user-guide.md
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "coding-proxy"
3
- version = "0.4.1a12"
3
+ version = "0.5.0"
4
4
  description = "A High-Availability, Transparent, and Smart Multi-Vendor Proxy for Claude Code. Support Claude Plans, GitHub Copilot, Google Antigravity, ZAI/GLM, MiniMax, Qwen, Xiaomi, Kimi, Doubao..."
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.12"
@@ -74,7 +74,7 @@ wheels = [
74
74
 
75
75
  [[package]]
76
76
  name = "coding-proxy"
77
- version = "0.4.1a12"
77
+ version = "0.5.0"
78
78
  source = { editable = "." }
79
79
  dependencies = [
80
80
  { name = "aiosqlite" },
File without changes
File without changes
File without changes
File without changes