comate-cli 0.2.1__tar.gz → 0.2.2__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 (94) hide show
  1. {comate_cli-0.2.1 → comate_cli-0.2.2}/.gitignore +5 -1
  2. {comate_cli-0.2.1 → comate_cli-0.2.2}/PKG-INFO +1 -1
  3. {comate_cli-0.2.1 → comate_cli-0.2.2}/comate_cli/terminal_agent/app.py +1 -2
  4. {comate_cli-0.2.1 → comate_cli-0.2.2}/comate_cli/terminal_agent/tui.py +9 -0
  5. {comate_cli-0.2.1 → comate_cli-0.2.2}/pyproject.toml +1 -1
  6. {comate_cli-0.2.1 → comate_cli-0.2.2}/uv.lock +74 -91
  7. {comate_cli-0.2.1 → comate_cli-0.2.2}/README.md +0 -0
  8. {comate_cli-0.2.1 → comate_cli-0.2.2}/comate_cli/__init__.py +0 -0
  9. {comate_cli-0.2.1 → comate_cli-0.2.2}/comate_cli/__main__.py +0 -0
  10. {comate_cli-0.2.1 → comate_cli-0.2.2}/comate_cli/main.py +0 -0
  11. {comate_cli-0.2.1 → comate_cli-0.2.2}/comate_cli/mcp_cli.py +0 -0
  12. {comate_cli-0.2.1 → comate_cli-0.2.2}/comate_cli/terminal_agent/__init__.py +0 -0
  13. {comate_cli-0.2.1 → comate_cli-0.2.2}/comate_cli/terminal_agent/animations.py +0 -0
  14. {comate_cli-0.2.1 → comate_cli-0.2.2}/comate_cli/terminal_agent/assistant_render.py +0 -0
  15. {comate_cli-0.2.1 → comate_cli-0.2.2}/comate_cli/terminal_agent/custom_slash_commands.py +0 -0
  16. {comate_cli-0.2.1 → comate_cli-0.2.2}/comate_cli/terminal_agent/env_utils.py +0 -0
  17. {comate_cli-0.2.1 → comate_cli-0.2.2}/comate_cli/terminal_agent/error_display.py +0 -0
  18. {comate_cli-0.2.1 → comate_cli-0.2.2}/comate_cli/terminal_agent/event_renderer.py +0 -0
  19. {comate_cli-0.2.1 → comate_cli-0.2.2}/comate_cli/terminal_agent/fragment_utils.py +0 -0
  20. {comate_cli-0.2.1 → comate_cli-0.2.2}/comate_cli/terminal_agent/history_printer.py +0 -0
  21. {comate_cli-0.2.1 → comate_cli-0.2.2}/comate_cli/terminal_agent/input_geometry.py +0 -0
  22. {comate_cli-0.2.1 → comate_cli-0.2.2}/comate_cli/terminal_agent/layout_coordinator.py +0 -0
  23. {comate_cli-0.2.1 → comate_cli-0.2.2}/comate_cli/terminal_agent/logging_adapter.py +0 -0
  24. {comate_cli-0.2.1 → comate_cli-0.2.2}/comate_cli/terminal_agent/logo.py +0 -0
  25. {comate_cli-0.2.1 → comate_cli-0.2.2}/comate_cli/terminal_agent/markdown_render.py +0 -0
  26. {comate_cli-0.2.1 → comate_cli-0.2.2}/comate_cli/terminal_agent/mention_completer.py +0 -0
  27. {comate_cli-0.2.1 → comate_cli-0.2.2}/comate_cli/terminal_agent/message_style.py +0 -0
  28. {comate_cli-0.2.1 → comate_cli-0.2.2}/comate_cli/terminal_agent/models.py +0 -0
  29. {comate_cli-0.2.1 → comate_cli-0.2.2}/comate_cli/terminal_agent/preflight.py +0 -0
  30. {comate_cli-0.2.1 → comate_cli-0.2.2}/comate_cli/terminal_agent/question_view.py +0 -0
  31. {comate_cli-0.2.1 → comate_cli-0.2.2}/comate_cli/terminal_agent/resume_selector.py +0 -0
  32. {comate_cli-0.2.1 → comate_cli-0.2.2}/comate_cli/terminal_agent/rewind_store.py +0 -0
  33. {comate_cli-0.2.1 → comate_cli-0.2.2}/comate_cli/terminal_agent/rpc_protocol.py +0 -0
  34. {comate_cli-0.2.1 → comate_cli-0.2.2}/comate_cli/terminal_agent/rpc_stdio.py +0 -0
  35. {comate_cli-0.2.1 → comate_cli-0.2.2}/comate_cli/terminal_agent/selection_menu.py +0 -0
  36. {comate_cli-0.2.1 → comate_cli-0.2.2}/comate_cli/terminal_agent/session_view.py +0 -0
  37. {comate_cli-0.2.1 → comate_cli-0.2.2}/comate_cli/terminal_agent/slash_commands.py +0 -0
  38. {comate_cli-0.2.1 → comate_cli-0.2.2}/comate_cli/terminal_agent/startup.py +0 -0
  39. {comate_cli-0.2.1 → comate_cli-0.2.2}/comate_cli/terminal_agent/status_bar.py +0 -0
  40. {comate_cli-0.2.1 → comate_cli-0.2.2}/comate_cli/terminal_agent/text_effects.py +0 -0
  41. {comate_cli-0.2.1 → comate_cli-0.2.2}/comate_cli/terminal_agent/tips.py +0 -0
  42. {comate_cli-0.2.1 → comate_cli-0.2.2}/comate_cli/terminal_agent/tool_view.py +0 -0
  43. {comate_cli-0.2.1 → comate_cli-0.2.2}/comate_cli/terminal_agent/tui_parts/__init__.py +0 -0
  44. {comate_cli-0.2.1 → comate_cli-0.2.2}/comate_cli/terminal_agent/tui_parts/commands.py +0 -0
  45. {comate_cli-0.2.1 → comate_cli-0.2.2}/comate_cli/terminal_agent/tui_parts/history_sync.py +0 -0
  46. {comate_cli-0.2.1 → comate_cli-0.2.2}/comate_cli/terminal_agent/tui_parts/input_behavior.py +0 -0
  47. {comate_cli-0.2.1 → comate_cli-0.2.2}/comate_cli/terminal_agent/tui_parts/key_bindings.py +0 -0
  48. {comate_cli-0.2.1 → comate_cli-0.2.2}/comate_cli/terminal_agent/tui_parts/render_panels.py +0 -0
  49. {comate_cli-0.2.1 → comate_cli-0.2.2}/comate_cli/terminal_agent/tui_parts/slash_command_registry.py +0 -0
  50. {comate_cli-0.2.1 → comate_cli-0.2.2}/comate_cli/terminal_agent/tui_parts/ui_mode.py +0 -0
  51. {comate_cli-0.2.1 → comate_cli-0.2.2}/test_memory.md +0 -0
  52. {comate_cli-0.2.1 → comate_cli-0.2.2}/tests/conftest.py +0 -0
  53. {comate_cli-0.2.1 → comate_cli-0.2.2}/tests/test_app_mcp_preload.py +0 -0
  54. {comate_cli-0.2.1 → comate_cli-0.2.2}/tests/test_app_preflight_gate.py +0 -0
  55. {comate_cli-0.2.1 → comate_cli-0.2.2}/tests/test_app_shutdown.py +0 -0
  56. {comate_cli-0.2.1 → comate_cli-0.2.2}/tests/test_app_usage_line.py +0 -0
  57. {comate_cli-0.2.1 → comate_cli-0.2.2}/tests/test_cli_project_root.py +0 -0
  58. {comate_cli-0.2.1 → comate_cli-0.2.2}/tests/test_compact_command_semantics.py +0 -0
  59. {comate_cli-0.2.1 → comate_cli-0.2.2}/tests/test_completion_context_activation.py +0 -0
  60. {comate_cli-0.2.1 → comate_cli-0.2.2}/tests/test_completion_status_panel.py +0 -0
  61. {comate_cli-0.2.1 → comate_cli-0.2.2}/tests/test_context_command.py +0 -0
  62. {comate_cli-0.2.1 → comate_cli-0.2.2}/tests/test_custom_slash_commands.py +0 -0
  63. {comate_cli-0.2.1 → comate_cli-0.2.2}/tests/test_event_renderer.py +0 -0
  64. {comate_cli-0.2.1 → comate_cli-0.2.2}/tests/test_history_sync.py +0 -0
  65. {comate_cli-0.2.1 → comate_cli-0.2.2}/tests/test_input_behavior.py +0 -0
  66. {comate_cli-0.2.1 → comate_cli-0.2.2}/tests/test_interrupt_exit_semantics.py +0 -0
  67. {comate_cli-0.2.1 → comate_cli-0.2.2}/tests/test_layout_coordinator.py +0 -0
  68. {comate_cli-0.2.1 → comate_cli-0.2.2}/tests/test_logging_adapter.py +0 -0
  69. {comate_cli-0.2.1 → comate_cli-0.2.2}/tests/test_logo.py +0 -0
  70. {comate_cli-0.2.1 → comate_cli-0.2.2}/tests/test_main_args.py +0 -0
  71. {comate_cli-0.2.1 → comate_cli-0.2.2}/tests/test_mcp_cli.py +0 -0
  72. {comate_cli-0.2.1 → comate_cli-0.2.2}/tests/test_mcp_slash_command.py +0 -0
  73. {comate_cli-0.2.1 → comate_cli-0.2.2}/tests/test_mention_completer.py +0 -0
  74. {comate_cli-0.2.1 → comate_cli-0.2.2}/tests/test_preflight.py +0 -0
  75. {comate_cli-0.2.1 → comate_cli-0.2.2}/tests/test_preflight_copilot.py +0 -0
  76. {comate_cli-0.2.1 → comate_cli-0.2.2}/tests/test_question_key_bindings.py +0 -0
  77. {comate_cli-0.2.1 → comate_cli-0.2.2}/tests/test_question_view.py +0 -0
  78. {comate_cli-0.2.1 → comate_cli-0.2.2}/tests/test_resume_selector.py +0 -0
  79. {comate_cli-0.2.1 → comate_cli-0.2.2}/tests/test_rewind_command_semantics.py +0 -0
  80. {comate_cli-0.2.1 → comate_cli-0.2.2}/tests/test_rewind_store.py +0 -0
  81. {comate_cli-0.2.1 → comate_cli-0.2.2}/tests/test_rpc_protocol.py +0 -0
  82. {comate_cli-0.2.1 → comate_cli-0.2.2}/tests/test_rpc_stdio_bridge.py +0 -0
  83. {comate_cli-0.2.1 → comate_cli-0.2.2}/tests/test_selection_menu.py +0 -0
  84. {comate_cli-0.2.1 → comate_cli-0.2.2}/tests/test_skills_slash_command.py +0 -0
  85. {comate_cli-0.2.1 → comate_cli-0.2.2}/tests/test_slash_argument_hint.py +0 -0
  86. {comate_cli-0.2.1 → comate_cli-0.2.2}/tests/test_slash_completer.py +0 -0
  87. {comate_cli-0.2.1 → comate_cli-0.2.2}/tests/test_slash_registry.py +0 -0
  88. {comate_cli-0.2.1 → comate_cli-0.2.2}/tests/test_status_bar.py +0 -0
  89. {comate_cli-0.2.1 → comate_cli-0.2.2}/tests/test_task_panel_key_bindings.py +0 -0
  90. {comate_cli-0.2.1 → comate_cli-0.2.2}/tests/test_tool_view.py +0 -0
  91. {comate_cli-0.2.1 → comate_cli-0.2.2}/tests/test_tui_elapsed_status.py +0 -0
  92. {comate_cli-0.2.1 → comate_cli-0.2.2}/tests/test_tui_mcp_init_gate.py +0 -0
  93. {comate_cli-0.2.1 → comate_cli-0.2.2}/tests/test_tui_paste_placeholder.py +0 -0
  94. {comate_cli-0.2.1 → comate_cli-0.2.2}/tests/test_tui_split_invariance.py +0 -0
@@ -8,6 +8,7 @@ set_env.sh
8
8
  # C extensions
9
9
  *.so
10
10
 
11
+ .claude/
11
12
  # Distribution / packaging
12
13
  .Python
13
14
  build/
@@ -218,4 +219,7 @@ __marimo__/
218
219
  .streamlit/secrets.toml
219
220
 
220
221
  .env
221
- ./tmp/
222
+ ./tmp/
223
+
224
+ # OS generated files
225
+ .DS_Store
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: comate-cli
3
- Version: 0.2.1
3
+ Version: 0.2.2
4
4
  Summary: Comate terminal CLI built on comate-agent-sdk
5
5
  Project-URL: Homepage, https://github.com/AndyLee1024/agent-sdk
6
6
  Project-URL: Repository, https://github.com/AndyLee1024/agent-sdk
@@ -15,8 +15,7 @@ from pathlib import Path
15
15
 
16
16
  from rich.console import Console
17
17
 
18
- from comate_agent_sdk import Agent
19
- from comate_agent_sdk.agent import AgentConfig, ChatSession
18
+ from comate_agent_sdk.agent import Agent, AgentConfig, ChatSession
20
19
  from comate_agent_sdk.context import EnvOptions
21
20
  from comate_agent_sdk.tools import tool
22
21
 
@@ -741,6 +741,15 @@ class TerminalAgentTUI(
741
741
  }
742
742
  if isinstance(event, StopEvent):
743
743
  stop_reason = str(event.reason or "")
744
+ if event.reason == "shutdown_request":
745
+ shutdown_recipients = event.metadata.get("shutdown_recipients", [])
746
+ if shutdown_recipients:
747
+ from comate_agent_sdk.agent.runner_engine.query_stream import (
748
+ _send_team_shutdown_response,
749
+ )
750
+ _send_team_shutdown_response(
751
+ self._session.runtime, recipients=shutdown_recipients
752
+ )
744
753
  is_waiting, new_questions = self._renderer.handle_event(event)
745
754
  self._maybe_flash_tool_result(event)
746
755
  if is_waiting:
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "comate-cli"
7
- version = "0.2.1"
7
+ version = "0.2.2"
8
8
  description = "Comate terminal CLI built on comate-agent-sdk"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.11"
@@ -137,7 +137,7 @@ wheels = [
137
137
 
138
138
  [[package]]
139
139
  name = "anthropic"
140
- version = "0.84.0"
140
+ version = "0.76.0"
141
141
  source = { registry = "https://pypi.tuna.tsinghua.edu.cn/simple" }
142
142
  dependencies = [
143
143
  { name = "anyio" },
@@ -149,9 +149,9 @@ dependencies = [
149
149
  { name = "sniffio" },
150
150
  { name = "typing-extensions" },
151
151
  ]
152
- sdist = { url = "https://pypi.tuna.tsinghua.edu.cn/packages/04/ea/0869d6df9ef83dcf393aeefc12dd81677d091c6ffc86f783e51cf44062f2/anthropic-0.84.0.tar.gz", hash = "sha256:72f5f90e5aebe62dca316cb013629cfa24996b0f5a4593b8c3d712bc03c43c37", size = 539457 }
152
+ sdist = { url = "https://pypi.tuna.tsinghua.edu.cn/packages/6e/be/d11abafaa15d6304826438170f7574d750218f49a106c54424a40cef4494/anthropic-0.76.0.tar.gz", hash = "sha256:e0cae6a368986d5cf6df743dfbb1b9519e6a9eee9c6c942ad8121c0b34416ffe", size = 495483 }
153
153
  wheels = [
154
- { url = "https://pypi.tuna.tsinghua.edu.cn/packages/64/ca/218fa25002a332c0aa149ba18ffc0543175998b1f65de63f6d106689a345/anthropic-0.84.0-py3-none-any.whl", hash = "sha256:861c4c50f91ca45f942e091d83b60530ad6d4f98733bfe648065364da05d29e7", size = 455156 },
154
+ { url = "https://pypi.tuna.tsinghua.edu.cn/packages/e5/70/7b0fd9c1a738f59d3babe2b4212031c34ab7d0fda4ffef15b58a55c5bcea/anthropic-0.76.0-py3-none-any.whl", hash = "sha256:81efa3113901192af2f0fe977d3ec73fdadb1e691586306c4256cd6d5ccc331c", size = 390309 },
155
155
  ]
156
156
 
157
157
  [[package]]
@@ -364,7 +364,7 @@ wheels = [
364
364
 
365
365
  [[package]]
366
366
  name = "comate-agent-sdk"
367
- version = "0.1.0"
367
+ version = "0.2.1"
368
368
  source = { editable = "../../" }
369
369
  dependencies = [
370
370
  { name = "aiohttp" },
@@ -389,27 +389,27 @@ dependencies = [
389
389
 
390
390
  [package.metadata]
391
391
  requires-dist = [
392
- { name = "aiohttp", specifier = ">=3.9.0" },
393
- { name = "anthropic", specifier = ">=0.40.0" },
394
- { name = "anthropic", marker = "extra == 'anthropic'", specifier = ">=0.40.0" },
395
- { name = "anyio", specifier = ">=4.12.1" },
396
- { name = "beautifulsoup4", specifier = ">=4.14.3" },
392
+ { name = "aiohttp", specifier = "==3.13.3" },
393
+ { name = "anthropic", specifier = "==0.76.0" },
394
+ { name = "anthropic", marker = "extra == 'anthropic'", specifier = "==0.76.0" },
395
+ { name = "anyio", specifier = "==4.12.1" },
396
+ { name = "beautifulsoup4", specifier = "==4.14.3" },
397
397
  { name = "curl-cffi", specifier = "==0.13.0" },
398
- { name = "dotenv", specifier = ">=0.9.9" },
399
- { name = "google-genai", specifier = ">=1.0.0" },
400
- { name = "google-genai", marker = "extra == 'google'", specifier = ">=1.0.0" },
401
- { name = "httpx", specifier = ">=0.28.1" },
398
+ { name = "dotenv", specifier = "==0.9.9" },
399
+ { name = "google-genai", specifier = "==1.60.0" },
400
+ { name = "google-genai", marker = "extra == 'google'", specifier = "==1.60.0" },
401
+ { name = "httpx", specifier = "==0.28.1" },
402
402
  { name = "lmnr", marker = "extra == 'observability'", specifier = ">=0.4.0" },
403
- { name = "markdown", specifier = ">=3.10.1" },
404
- { name = "markdownify", specifier = ">=1.2.2" },
405
- { name = "mcp", specifier = ">=1.26.0" },
406
- { name = "openai", specifier = ">=1.50.0" },
407
- { name = "openai", marker = "extra == 'openai'", specifier = ">=1.50.0" },
408
- { name = "pandoc", specifier = ">=2.4" },
409
- { name = "pydantic", specifier = ">=2.0.0" },
410
- { name = "pyyaml", specifier = ">=6.0.3" },
411
- { name = "questionary", specifier = ">=2.1.1" },
412
- { name = "reportlab", specifier = ">=4.4.9" },
403
+ { name = "markdown", specifier = "==3.10.1" },
404
+ { name = "markdownify", specifier = "==1.2.2" },
405
+ { name = "mcp", specifier = "==1.26.0" },
406
+ { name = "openai", specifier = "==2.16.0" },
407
+ { name = "openai", marker = "extra == 'openai'", specifier = "==2.16.0" },
408
+ { name = "pandoc", specifier = "==2.4" },
409
+ { name = "pydantic", specifier = "==2.12.5" },
410
+ { name = "pyyaml", specifier = "==6.0.3" },
411
+ { name = "questionary", specifier = "==2.1.1" },
412
+ { name = "reportlab", specifier = "==4.4.9" },
413
413
  { name = "tiktoken", specifier = "==0.12.0" },
414
414
  { name = "tiktoken", marker = "extra == 'context'", specifier = "==0.12.0" },
415
415
  ]
@@ -427,7 +427,7 @@ dev = [
427
427
 
428
428
  [[package]]
429
429
  name = "comate-cli"
430
- version = "0.1.11"
430
+ version = "0.2.1"
431
431
  source = { editable = "." }
432
432
  dependencies = [
433
433
  { name = "comate-agent-sdk" },
@@ -685,7 +685,7 @@ requests = [
685
685
 
686
686
  [[package]]
687
687
  name = "google-genai"
688
- version = "1.65.0"
688
+ version = "1.60.0"
689
689
  source = { registry = "https://pypi.tuna.tsinghua.edu.cn/simple" }
690
690
  dependencies = [
691
691
  { name = "anyio" },
@@ -699,9 +699,9 @@ dependencies = [
699
699
  { name = "typing-extensions" },
700
700
  { name = "websockets" },
701
701
  ]
702
- sdist = { url = "https://pypi.tuna.tsinghua.edu.cn/packages/79/f9/cc1191c2540d6a4e24609a586c4ed45d2db57cfef47931c139ee70e5874a/google_genai-1.65.0.tar.gz", hash = "sha256:d470eb600af802d58a79c7f13342d9ea0d05d965007cae8f76c7adff3d7a4750", size = 497206 }
702
+ sdist = { url = "https://pypi.tuna.tsinghua.edu.cn/packages/0a/3f/a753be0dcee352b7d63bc6d1ba14a72591d63b6391dac0cdff7ac168c530/google_genai-1.60.0.tar.gz", hash = "sha256:9768061775fddfaecfefb0d6d7a6cabefb3952ebd246cd5f65247151c07d33d1", size = 487721 }
703
703
  wheels = [
704
- { url = "https://pypi.tuna.tsinghua.edu.cn/packages/68/3c/3fea4e7c91357c71782d7dcaad7a2577d636c90317e003386893c25bc62c/google_genai-1.65.0-py3-none-any.whl", hash = "sha256:68c025205856919bc03edb0155c11b4b833810b7ce17ad4b7a9eeba5158f6c44", size = 724429 },
704
+ { url = "https://pypi.tuna.tsinghua.edu.cn/packages/31/e5/384b1f383917b5f0ae92e28f47bc27b16e3d26cd9bacb25e9f8ecab3c8fe/google_genai-1.60.0-py3-none-any.whl", hash = "sha256:967338378ffecebec19a8ed90cf8797b26818bacbefd7846a9280beb1099f7f3", size = 719431 },
705
705
  ]
706
706
 
707
707
  [[package]]
@@ -874,11 +874,11 @@ wheels = [
874
874
 
875
875
  [[package]]
876
876
  name = "markdown"
877
- version = "3.10.2"
877
+ version = "3.10.1"
878
878
  source = { registry = "https://pypi.tuna.tsinghua.edu.cn/simple" }
879
- sdist = { url = "https://pypi.tuna.tsinghua.edu.cn/packages/2b/f4/69fa6ed85ae003c2378ffa8f6d2e3234662abd02c10d216c0ba96081a238/markdown-3.10.2.tar.gz", hash = "sha256:994d51325d25ad8aa7ce4ebaec003febcce822c3f8c911e3b17c52f7f589f950", size = 368805 }
879
+ sdist = { url = "https://pypi.tuna.tsinghua.edu.cn/packages/b7/b1/af95bcae8549f1f3fd70faacb29075826a0d689a27f232e8cee315efa053/markdown-3.10.1.tar.gz", hash = "sha256:1c19c10bd5c14ac948c53d0d762a04e2fa35a6d58a6b7b1e6bfcbe6fefc0001a", size = 365402 }
880
880
  wheels = [
881
- { url = "https://pypi.tuna.tsinghua.edu.cn/packages/de/1f/77fa3081e4f66ca3576c896ae5d31c3002ac6607f9747d2e3aa49227e464/markdown-3.10.2-py3-none-any.whl", hash = "sha256:e91464b71ae3ee7afd3017d9f358ef0baf158fd9a298db92f1d4761133824c36", size = 108180 },
881
+ { url = "https://pypi.tuna.tsinghua.edu.cn/packages/59/1b/6ef961f543593969d25b2afe57a3564200280528caa9bd1082eecdd7b3bc/markdown-3.10.1-py3-none-any.whl", hash = "sha256:867d788939fe33e4b736426f5b9f651ad0c0ae0ecf89df0ca5d1176c70812fe3", size = 107684 },
882
882
  ]
883
883
 
884
884
  [[package]]
@@ -1059,7 +1059,7 @@ wheels = [
1059
1059
 
1060
1060
  [[package]]
1061
1061
  name = "openai"
1062
- version = "2.24.0"
1062
+ version = "2.16.0"
1063
1063
  source = { registry = "https://pypi.tuna.tsinghua.edu.cn/simple" }
1064
1064
  dependencies = [
1065
1065
  { name = "anyio" },
@@ -1071,9 +1071,9 @@ dependencies = [
1071
1071
  { name = "tqdm" },
1072
1072
  { name = "typing-extensions" },
1073
1073
  ]
1074
- sdist = { url = "https://pypi.tuna.tsinghua.edu.cn/packages/55/13/17e87641b89b74552ed408a92b231283786523edddc95f3545809fab673c/openai-2.24.0.tar.gz", hash = "sha256:1e5769f540dbd01cb33bc4716a23e67b9d695161a734aff9c5f925e2bf99a673", size = 658717 }
1074
+ sdist = { url = "https://pypi.tuna.tsinghua.edu.cn/packages/b1/6c/e4c964fcf1d527fdf4739e7cc940c60075a4114d50d03871d5d5b1e13a88/openai-2.16.0.tar.gz", hash = "sha256:42eaa22ca0d8ded4367a77374104d7a2feafee5bd60a107c3c11b5243a11cd12", size = 629649 }
1075
1075
  wheels = [
1076
- { url = "https://pypi.tuna.tsinghua.edu.cn/packages/c9/30/844dc675ee6902579b8eef01ed23917cc9319a1c9c0c14ec6e39340c96d0/openai-2.24.0-py3-none-any.whl", hash = "sha256:fed30480d7d6c884303287bde864980a4b137b60553ffbcf9ab4a233b7a73d94", size = 1120122 },
1076
+ { url = "https://pypi.tuna.tsinghua.edu.cn/packages/16/83/0315bf2cfd75a2ce8a7e54188e9456c60cec6c0cf66728ed07bd9859ff26/openai-2.16.0-py3-none-any.whl", hash = "sha256:5f46643a8f42899a84e80c38838135d7038e7718333ce61396994f887b09a59b", size = 1068612 },
1077
1077
  ]
1078
1078
 
1079
1079
  [[package]]
@@ -1734,15 +1734,15 @@ wheels = [
1734
1734
 
1735
1735
  [[package]]
1736
1736
  name = "reportlab"
1737
- version = "4.4.10"
1737
+ version = "4.4.9"
1738
1738
  source = { registry = "https://pypi.tuna.tsinghua.edu.cn/simple" }
1739
1739
  dependencies = [
1740
1740
  { name = "charset-normalizer" },
1741
1741
  { name = "pillow" },
1742
1742
  ]
1743
- sdist = { url = "https://pypi.tuna.tsinghua.edu.cn/packages/48/57/28bfbf0a775b618b6e4d854ef8dd3f5c8988e5d614d8898703502a35f61c/reportlab-4.4.10.tar.gz", hash = "sha256:5cbbb34ac3546039d0086deb2938cdec06b12da3cdb836e813258eb33cd28487", size = 3714962 }
1743
+ sdist = { url = "https://pypi.tuna.tsinghua.edu.cn/packages/1a/39/42cf24aee570a80e1903221ae3a92a2e34c324794a392eb036cbb6dc3839/reportlab-4.4.9.tar.gz", hash = "sha256:7cf487764294ee791a4781f5a157bebce262a666ae4bbb87786760a9676c9378", size = 3911246 }
1744
1744
  wheels = [
1745
- { url = "https://pypi.tuna.tsinghua.edu.cn/packages/8a/2e/e1798b8b248e1517e74c6cdf10dd6edd485044e7edf46b5f11ffcc5a0add/reportlab-4.4.10-py3-none-any.whl", hash = "sha256:5abc815746ae2bc44e7ff25db96814f921349ca814c992c7eac3c26029bf7c24", size = 1955400 },
1745
+ { url = "https://pypi.tuna.tsinghua.edu.cn/packages/17/77/546e50edfaba6a0e58e8ec5fdc4446510227cec9e8f40172b60941d5a633/reportlab-4.4.9-py3-none-any.whl", hash = "sha256:68e2d103ae8041a37714e8896ec9b79a1c1e911d68c3bd2ea17546568cf17bfd", size = 1954401 },
1746
1746
  ]
1747
1747
 
1748
1748
  [[package]]
@@ -2075,61 +2075,44 @@ wheels = [
2075
2075
 
2076
2076
  [[package]]
2077
2077
  name = "websockets"
2078
- version = "16.0"
2079
- source = { registry = "https://pypi.tuna.tsinghua.edu.cn/simple" }
2080
- sdist = { url = "https://pypi.tuna.tsinghua.edu.cn/packages/04/24/4b2031d72e840ce4c1ccb255f693b15c334757fc50023e4db9537080b8c4/websockets-16.0.tar.gz", hash = "sha256:5f6261a5e56e8d5c42a4497b364ea24d94d9563e8fbd44e78ac40879c60179b5", size = 179346 }
2081
- wheels = [
2082
- { url = "https://pypi.tuna.tsinghua.edu.cn/packages/f2/db/de907251b4ff46ae804ad0409809504153b3f30984daf82a1d84a9875830/websockets-16.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:31a52addea25187bde0797a97d6fc3d2f92b6f72a9370792d65a6e84615ac8a8", size = 177340 },
2083
- { url = "https://pypi.tuna.tsinghua.edu.cn/packages/f3/fa/abe89019d8d8815c8781e90d697dec52523fb8ebe308bf11664e8de1877e/websockets-16.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:417b28978cdccab24f46400586d128366313e8a96312e4b9362a4af504f3bbad", size = 175022 },
2084
- { url = "https://pypi.tuna.tsinghua.edu.cn/packages/58/5d/88ea17ed1ded2079358b40d31d48abe90a73c9e5819dbcde1606e991e2ad/websockets-16.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:af80d74d4edfa3cb9ed973a0a5ba2b2a549371f8a741e0800cb07becdd20f23d", size = 175319 },
2085
- { url = "https://pypi.tuna.tsinghua.edu.cn/packages/d2/ae/0ee92b33087a33632f37a635e11e1d99d429d3d323329675a6022312aac2/websockets-16.0-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:08d7af67b64d29823fed316505a89b86705f2b7981c07848fb5e3ea3020c1abe", size = 184631 },
2086
- { url = "https://pypi.tuna.tsinghua.edu.cn/packages/c8/c5/27178df583b6c5b31b29f526ba2da5e2f864ecc79c99dae630a85d68c304/websockets-16.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7be95cfb0a4dae143eaed2bcba8ac23f4892d8971311f1b06f3c6b78952ee70b", size = 185870 },
2087
- { url = "https://pypi.tuna.tsinghua.edu.cn/packages/87/05/536652aa84ddc1c018dbb7e2c4cbcd0db884580bf8e95aece7593fde526f/websockets-16.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d6297ce39ce5c2e6feb13c1a996a2ded3b6832155fcfc920265c76f24c7cceb5", size = 185361 },
2088
- { url = "https://pypi.tuna.tsinghua.edu.cn/packages/6d/e2/d5332c90da12b1e01f06fb1b85c50cfc489783076547415bf9f0a659ec19/websockets-16.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:1c1b30e4f497b0b354057f3467f56244c603a79c0d1dafce1d16c283c25f6e64", size = 184615 },
2089
- { url = "https://pypi.tuna.tsinghua.edu.cn/packages/77/fb/d3f9576691cae9253b51555f841bc6600bf0a983a461c79500ace5a5b364/websockets-16.0-cp311-cp311-win32.whl", hash = "sha256:5f451484aeb5cafee1ccf789b1b66f535409d038c56966d6101740c1614b86c6", size = 178246 },
2090
- { url = "https://pypi.tuna.tsinghua.edu.cn/packages/54/67/eaff76b3dbaf18dcddabc3b8c1dba50b483761cccff67793897945b37408/websockets-16.0-cp311-cp311-win_amd64.whl", hash = "sha256:8d7f0659570eefb578dacde98e24fb60af35350193e4f56e11190787bee77dac", size = 178684 },
2091
- { url = "https://pypi.tuna.tsinghua.edu.cn/packages/84/7b/bac442e6b96c9d25092695578dda82403c77936104b5682307bd4deb1ad4/websockets-16.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:71c989cbf3254fbd5e84d3bff31e4da39c43f884e64f2551d14bb3c186230f00", size = 177365 },
2092
- { url = "https://pypi.tuna.tsinghua.edu.cn/packages/b0/fe/136ccece61bd690d9c1f715baaeefd953bb2360134de73519d5df19d29ca/websockets-16.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:8b6e209ffee39ff1b6d0fa7bfef6de950c60dfb91b8fcead17da4ee539121a79", size = 175038 },
2093
- { url = "https://pypi.tuna.tsinghua.edu.cn/packages/40/1e/9771421ac2286eaab95b8575b0cb701ae3663abf8b5e1f64f1fd90d0a673/websockets-16.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:86890e837d61574c92a97496d590968b23c2ef0aeb8a9bc9421d174cd378ae39", size = 175328 },
2094
- { url = "https://pypi.tuna.tsinghua.edu.cn/packages/18/29/71729b4671f21e1eaa5d6573031ab810ad2936c8175f03f97f3ff164c802/websockets-16.0-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:9b5aca38b67492ef518a8ab76851862488a478602229112c4b0d58d63a7a4d5c", size = 184915 },
2095
- { url = "https://pypi.tuna.tsinghua.edu.cn/packages/97/bb/21c36b7dbbafc85d2d480cd65df02a1dc93bf76d97147605a8e27ff9409d/websockets-16.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e0334872c0a37b606418ac52f6ab9cfd17317ac26365f7f65e203e2d0d0d359f", size = 186152 },
2096
- { url = "https://pypi.tuna.tsinghua.edu.cn/packages/4a/34/9bf8df0c0cf88fa7bfe36678dc7b02970c9a7d5e065a3099292db87b1be2/websockets-16.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:a0b31e0b424cc6b5a04b8838bbaec1688834b2383256688cf47eb97412531da1", size = 185583 },
2097
- { url = "https://pypi.tuna.tsinghua.edu.cn/packages/47/88/4dd516068e1a3d6ab3c7c183288404cd424a9a02d585efbac226cb61ff2d/websockets-16.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:485c49116d0af10ac698623c513c1cc01c9446c058a4e61e3bf6c19dff7335a2", size = 184880 },
2098
- { url = "https://pypi.tuna.tsinghua.edu.cn/packages/91/d6/7d4553ad4bf1c0421e1ebd4b18de5d9098383b5caa1d937b63df8d04b565/websockets-16.0-cp312-cp312-win32.whl", hash = "sha256:eaded469f5e5b7294e2bdca0ab06becb6756ea86894a47806456089298813c89", size = 178261 },
2099
- { url = "https://pypi.tuna.tsinghua.edu.cn/packages/c3/f0/f3a17365441ed1c27f850a80b2bc680a0fa9505d733fe152fdf5e98c1c0b/websockets-16.0-cp312-cp312-win_amd64.whl", hash = "sha256:5569417dc80977fc8c2d43a86f78e0a5a22fee17565d78621b6bb264a115d4ea", size = 178693 },
2100
- { url = "https://pypi.tuna.tsinghua.edu.cn/packages/cc/9c/baa8456050d1c1b08dd0ec7346026668cbc6f145ab4e314d707bb845bf0d/websockets-16.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:878b336ac47938b474c8f982ac2f7266a540adc3fa4ad74ae96fea9823a02cc9", size = 177364 },
2101
- { url = "https://pypi.tuna.tsinghua.edu.cn/packages/7e/0c/8811fc53e9bcff68fe7de2bcbe75116a8d959ac699a3200f4847a8925210/websockets-16.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:52a0fec0e6c8d9a784c2c78276a48a2bdf099e4ccc2a4cad53b27718dbfd0230", size = 175039 },
2102
- { url = "https://pypi.tuna.tsinghua.edu.cn/packages/aa/82/39a5f910cb99ec0b59e482971238c845af9220d3ab9fa76dd9162cda9d62/websockets-16.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:e6578ed5b6981005df1860a56e3617f14a6c307e6a71b4fff8c48fdc50f3ed2c", size = 175323 },
2103
- { url = "https://pypi.tuna.tsinghua.edu.cn/packages/bd/28/0a25ee5342eb5d5f297d992a77e56892ecb65e7854c7898fb7d35e9b33bd/websockets-16.0-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:95724e638f0f9c350bb1c2b0a7ad0e83d9cc0c9259f3ea94e40d7b02a2179ae5", size = 184975 },
2104
- { url = "https://pypi.tuna.tsinghua.edu.cn/packages/f9/66/27ea52741752f5107c2e41fda05e8395a682a1e11c4e592a809a90c6a506/websockets-16.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c0204dc62a89dc9d50d682412c10b3542d748260d743500a85c13cd1ee4bde82", size = 186203 },
2105
- { url = "https://pypi.tuna.tsinghua.edu.cn/packages/37/e5/8e32857371406a757816a2b471939d51c463509be73fa538216ea52b792a/websockets-16.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:52ac480f44d32970d66763115edea932f1c5b1312de36df06d6b219f6741eed8", size = 185653 },
2106
- { url = "https://pypi.tuna.tsinghua.edu.cn/packages/9b/67/f926bac29882894669368dc73f4da900fcdf47955d0a0185d60103df5737/websockets-16.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6e5a82b677f8f6f59e8dfc34ec06ca6b5b48bc4fcda346acd093694cc2c24d8f", size = 184920 },
2107
- { url = "https://pypi.tuna.tsinghua.edu.cn/packages/3c/a1/3d6ccdcd125b0a42a311bcd15a7f705d688f73b2a22d8cf1c0875d35d34a/websockets-16.0-cp313-cp313-win32.whl", hash = "sha256:abf050a199613f64c886ea10f38b47770a65154dc37181bfaff70c160f45315a", size = 178255 },
2108
- { url = "https://pypi.tuna.tsinghua.edu.cn/packages/6b/ae/90366304d7c2ce80f9b826096a9e9048b4bb760e44d3b873bb272cba696b/websockets-16.0-cp313-cp313-win_amd64.whl", hash = "sha256:3425ac5cf448801335d6fdc7ae1eb22072055417a96cc6b31b3861f455fbc156", size = 178689 },
2109
- { url = "https://pypi.tuna.tsinghua.edu.cn/packages/f3/1d/e88022630271f5bd349ed82417136281931e558d628dd52c4d8621b4a0b2/websockets-16.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:8cc451a50f2aee53042ac52d2d053d08bf89bcb31ae799cb4487587661c038a0", size = 177406 },
2110
- { url = "https://pypi.tuna.tsinghua.edu.cn/packages/f2/78/e63be1bf0724eeb4616efb1ae1c9044f7c3953b7957799abb5915bffd38e/websockets-16.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:daa3b6ff70a9241cf6c7fc9e949d41232d9d7d26fd3522b1ad2b4d62487e9904", size = 175085 },
2111
- { url = "https://pypi.tuna.tsinghua.edu.cn/packages/bb/f4/d3c9220d818ee955ae390cf319a7c7a467beceb24f05ee7aaaa2414345ba/websockets-16.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:fd3cb4adb94a2a6e2b7c0d8d05cb94e6f1c81a0cf9dc2694fb65c7e8d94c42e4", size = 175328 },
2112
- { url = "https://pypi.tuna.tsinghua.edu.cn/packages/63/bc/d3e208028de777087e6fb2b122051a6ff7bbcca0d6df9d9c2bf1dd869ae9/websockets-16.0-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:781caf5e8eee67f663126490c2f96f40906594cb86b408a703630f95550a8c3e", size = 185044 },
2113
- { url = "https://pypi.tuna.tsinghua.edu.cn/packages/ad/6e/9a0927ac24bd33a0a9af834d89e0abc7cfd8e13bed17a86407a66773cc0e/websockets-16.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:caab51a72c51973ca21fa8a18bd8165e1a0183f1ac7066a182ff27107b71e1a4", size = 186279 },
2114
- { url = "https://pypi.tuna.tsinghua.edu.cn/packages/b9/ca/bf1c68440d7a868180e11be653c85959502efd3a709323230314fda6e0b3/websockets-16.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:19c4dc84098e523fd63711e563077d39e90ec6702aff4b5d9e344a60cb3c0cb1", size = 185711 },
2115
- { url = "https://pypi.tuna.tsinghua.edu.cn/packages/c4/f8/fdc34643a989561f217bb477cbc47a3a07212cbda91c0e4389c43c296ebf/websockets-16.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:a5e18a238a2b2249c9a9235466b90e96ae4795672598a58772dd806edc7ac6d3", size = 184982 },
2116
- { url = "https://pypi.tuna.tsinghua.edu.cn/packages/dd/d1/574fa27e233764dbac9c52730d63fcf2823b16f0856b3329fc6268d6ae4f/websockets-16.0-cp314-cp314-win32.whl", hash = "sha256:a069d734c4a043182729edd3e9f247c3b2a4035415a9172fd0f1b71658a320a8", size = 177915 },
2117
- { url = "https://pypi.tuna.tsinghua.edu.cn/packages/8a/f1/ae6b937bf3126b5134ce1f482365fde31a357c784ac51852978768b5eff4/websockets-16.0-cp314-cp314-win_amd64.whl", hash = "sha256:c0ee0e63f23914732c6d7e0cce24915c48f3f1512ec1d079ed01fc629dab269d", size = 178381 },
2118
- { url = "https://pypi.tuna.tsinghua.edu.cn/packages/06/9b/f791d1db48403e1f0a27577a6beb37afae94254a8c6f08be4a23e4930bc0/websockets-16.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:a35539cacc3febb22b8f4d4a99cc79b104226a756aa7400adc722e83b0d03244", size = 177737 },
2119
- { url = "https://pypi.tuna.tsinghua.edu.cn/packages/bd/40/53ad02341fa33b3ce489023f635367a4ac98b73570102ad2cdd770dacc9a/websockets-16.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:b784ca5de850f4ce93ec85d3269d24d4c82f22b7212023c974c401d4980ebc5e", size = 175268 },
2120
- { url = "https://pypi.tuna.tsinghua.edu.cn/packages/74/9b/6158d4e459b984f949dcbbb0c5d270154c7618e11c01029b9bbd1bb4c4f9/websockets-16.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:569d01a4e7fba956c5ae4fc988f0d4e187900f5497ce46339c996dbf24f17641", size = 175486 },
2121
- { url = "https://pypi.tuna.tsinghua.edu.cn/packages/e5/2d/7583b30208b639c8090206f95073646c2c9ffd66f44df967981a64f849ad/websockets-16.0-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:50f23cdd8343b984957e4077839841146f67a3d31ab0d00e6b824e74c5b2f6e8", size = 185331 },
2122
- { url = "https://pypi.tuna.tsinghua.edu.cn/packages/45/b0/cce3784eb519b7b5ad680d14b9673a31ab8dcb7aad8b64d81709d2430aa8/websockets-16.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:152284a83a00c59b759697b7f9e9cddf4e3c7861dd0d964b472b70f78f89e80e", size = 186501 },
2123
- { url = "https://pypi.tuna.tsinghua.edu.cn/packages/19/60/b8ebe4c7e89fb5f6cdf080623c9d92789a53636950f7abacfc33fe2b3135/websockets-16.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:bc59589ab64b0022385f429b94697348a6a234e8ce22544e3681b2e9331b5944", size = 186062 },
2124
- { url = "https://pypi.tuna.tsinghua.edu.cn/packages/88/a8/a080593f89b0138b6cba1b28f8df5673b5506f72879322288b031337c0b8/websockets-16.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:32da954ffa2814258030e5a57bc73a3635463238e797c7375dc8091327434206", size = 185356 },
2125
- { url = "https://pypi.tuna.tsinghua.edu.cn/packages/c2/b6/b9afed2afadddaf5ebb2afa801abf4b0868f42f8539bfe4b071b5266c9fe/websockets-16.0-cp314-cp314t-win32.whl", hash = "sha256:5a4b4cc550cb665dd8a47f868c8d04c8230f857363ad3c9caf7a0c3bf8c61ca6", size = 178085 },
2126
- { url = "https://pypi.tuna.tsinghua.edu.cn/packages/9f/3e/28135a24e384493fa804216b79a6a6759a38cc4ff59118787b9fb693df93/websockets-16.0-cp314-cp314t-win_amd64.whl", hash = "sha256:b14dc141ed6d2dde437cddb216004bcac6a1df0935d79656387bd41632ba0bbd", size = 178531 },
2127
- { url = "https://pypi.tuna.tsinghua.edu.cn/packages/72/07/c98a68571dcf256e74f1f816b8cc5eae6eb2d3d5cfa44d37f801619d9166/websockets-16.0-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:349f83cd6c9a415428ee1005cadb5c2c56f4389bc06a9af16103c3bc3dcc8b7d", size = 174947 },
2128
- { url = "https://pypi.tuna.tsinghua.edu.cn/packages/7e/52/93e166a81e0305b33fe416338be92ae863563fe7bce446b0f687b9df5aea/websockets-16.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:4a1aba3340a8dca8db6eb5a7986157f52eb9e436b74813764241981ca4888f03", size = 175260 },
2129
- { url = "https://pypi.tuna.tsinghua.edu.cn/packages/56/0c/2dbf513bafd24889d33de2ff0368190a0e69f37bcfa19009ef819fe4d507/websockets-16.0-pp311-pypy311_pp73-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:f4a32d1bd841d4bcbffdcb3d2ce50c09c3909fbead375ab28d0181af89fd04da", size = 176071 },
2130
- { url = "https://pypi.tuna.tsinghua.edu.cn/packages/a5/8f/aea9c71cc92bf9b6cc0f7f70df8f0b420636b6c96ef4feee1e16f80f75dd/websockets-16.0-pp311-pypy311_pp73-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0298d07ee155e2e9fda5be8a9042200dd2e3bb0b8a38482156576f863a9d457c", size = 176968 },
2131
- { url = "https://pypi.tuna.tsinghua.edu.cn/packages/9a/3f/f70e03f40ffc9a30d817eef7da1be72ee4956ba8d7255c399a01b135902a/websockets-16.0-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:a653aea902e0324b52f1613332ddf50b00c06fdaf7e92624fbf8c77c78fa5767", size = 178735 },
2132
- { url = "https://pypi.tuna.tsinghua.edu.cn/packages/6f/28/258ebab549c2bf3e64d2b0217b973467394a9cea8c42f70418ca2c5d0d2e/websockets-16.0-py3-none-any.whl", hash = "sha256:1637db62fad1dc833276dded54215f2c7fa46912301a24bd94d45d46a011ceec", size = 171598 },
2078
+ version = "15.0.1"
2079
+ source = { registry = "https://pypi.tuna.tsinghua.edu.cn/simple" }
2080
+ sdist = { url = "https://pypi.tuna.tsinghua.edu.cn/packages/21/e6/26d09fab466b7ca9c7737474c52be4f76a40301b08362eb2dbc19dcc16c1/websockets-15.0.1.tar.gz", hash = "sha256:82544de02076bafba038ce055ee6412d68da13ab47f0c60cab827346de828dee", size = 177016 }
2081
+ wheels = [
2082
+ { url = "https://pypi.tuna.tsinghua.edu.cn/packages/9f/32/18fcd5919c293a398db67443acd33fde142f283853076049824fc58e6f75/websockets-15.0.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:823c248b690b2fd9303ba00c4f66cd5e2d8c3ba4aa968b2779be9532a4dad431", size = 175423 },
2083
+ { url = "https://pypi.tuna.tsinghua.edu.cn/packages/76/70/ba1ad96b07869275ef42e2ce21f07a5b0148936688c2baf7e4a1f60d5058/websockets-15.0.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:678999709e68425ae2593acf2e3ebcbcf2e69885a5ee78f9eb80e6e371f1bf57", size = 173082 },
2084
+ { url = "https://pypi.tuna.tsinghua.edu.cn/packages/86/f2/10b55821dd40eb696ce4704a87d57774696f9451108cff0d2824c97e0f97/websockets-15.0.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d50fd1ee42388dcfb2b3676132c78116490976f1300da28eb629272d5d93e905", size = 173330 },
2085
+ { url = "https://pypi.tuna.tsinghua.edu.cn/packages/a5/90/1c37ae8b8a113d3daf1065222b6af61cc44102da95388ac0018fcb7d93d9/websockets-15.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d99e5546bf73dbad5bf3547174cd6cb8ba7273062a23808ffea025ecb1cf8562", size = 182878 },
2086
+ { url = "https://pypi.tuna.tsinghua.edu.cn/packages/8e/8d/96e8e288b2a41dffafb78e8904ea7367ee4f891dafc2ab8d87e2124cb3d3/websockets-15.0.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:66dd88c918e3287efc22409d426c8f729688d89a0c587c88971a0faa2c2f3792", size = 181883 },
2087
+ { url = "https://pypi.tuna.tsinghua.edu.cn/packages/93/1f/5d6dbf551766308f6f50f8baf8e9860be6182911e8106da7a7f73785f4c4/websockets-15.0.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8dd8327c795b3e3f219760fa603dcae1dcc148172290a8ab15158cf85a953413", size = 182252 },
2088
+ { url = "https://pypi.tuna.tsinghua.edu.cn/packages/d4/78/2d4fed9123e6620cbf1706c0de8a1632e1a28e7774d94346d7de1bba2ca3/websockets-15.0.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8fdc51055e6ff4adeb88d58a11042ec9a5eae317a0a53d12c062c8a8865909e8", size = 182521 },
2089
+ { url = "https://pypi.tuna.tsinghua.edu.cn/packages/e7/3b/66d4c1b444dd1a9823c4a81f50231b921bab54eee2f69e70319b4e21f1ca/websockets-15.0.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:693f0192126df6c2327cce3baa7c06f2a117575e32ab2308f7f8216c29d9e2e3", size = 181958 },
2090
+ { url = "https://pypi.tuna.tsinghua.edu.cn/packages/08/ff/e9eed2ee5fed6f76fdd6032ca5cd38c57ca9661430bb3d5fb2872dc8703c/websockets-15.0.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:54479983bd5fb469c38f2f5c7e3a24f9a4e70594cd68cd1fa6b9340dadaff7cf", size = 181918 },
2091
+ { url = "https://pypi.tuna.tsinghua.edu.cn/packages/d8/75/994634a49b7e12532be6a42103597b71098fd25900f7437d6055ed39930a/websockets-15.0.1-cp311-cp311-win32.whl", hash = "sha256:16b6c1b3e57799b9d38427dda63edcbe4926352c47cf88588c0be4ace18dac85", size = 176388 },
2092
+ { url = "https://pypi.tuna.tsinghua.edu.cn/packages/98/93/e36c73f78400a65f5e236cd376713c34182e6663f6889cd45a4a04d8f203/websockets-15.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:27ccee0071a0e75d22cb35849b1db43f2ecd3e161041ac1ee9d2352ddf72f065", size = 176828 },
2093
+ { url = "https://pypi.tuna.tsinghua.edu.cn/packages/51/6b/4545a0d843594f5d0771e86463606a3988b5a09ca5123136f8a76580dd63/websockets-15.0.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:3e90baa811a5d73f3ca0bcbf32064d663ed81318ab225ee4f427ad4e26e5aff3", size = 175437 },
2094
+ { url = "https://pypi.tuna.tsinghua.edu.cn/packages/f4/71/809a0f5f6a06522af902e0f2ea2757f71ead94610010cf570ab5c98e99ed/websockets-15.0.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:592f1a9fe869c778694f0aa806ba0374e97648ab57936f092fd9d87f8bc03665", size = 173096 },
2095
+ { url = "https://pypi.tuna.tsinghua.edu.cn/packages/3d/69/1a681dd6f02180916f116894181eab8b2e25b31e484c5d0eae637ec01f7c/websockets-15.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:0701bc3cfcb9164d04a14b149fd74be7347a530ad3bbf15ab2c678a2cd3dd9a2", size = 173332 },
2096
+ { url = "https://pypi.tuna.tsinghua.edu.cn/packages/a6/02/0073b3952f5bce97eafbb35757f8d0d54812b6174ed8dd952aa08429bcc3/websockets-15.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e8b56bdcdb4505c8078cb6c7157d9811a85790f2f2b3632c7d1462ab5783d215", size = 183152 },
2097
+ { url = "https://pypi.tuna.tsinghua.edu.cn/packages/74/45/c205c8480eafd114b428284840da0b1be9ffd0e4f87338dc95dc6ff961a1/websockets-15.0.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0af68c55afbd5f07986df82831c7bff04846928ea8d1fd7f30052638788bc9b5", size = 182096 },
2098
+ { url = "https://pypi.tuna.tsinghua.edu.cn/packages/14/8f/aa61f528fba38578ec553c145857a181384c72b98156f858ca5c8e82d9d3/websockets-15.0.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:64dee438fed052b52e4f98f76c5790513235efaa1ef7f3f2192c392cd7c91b65", size = 182523 },
2099
+ { url = "https://pypi.tuna.tsinghua.edu.cn/packages/ec/6d/0267396610add5bc0d0d3e77f546d4cd287200804fe02323797de77dbce9/websockets-15.0.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:d5f6b181bb38171a8ad1d6aa58a67a6aa9d4b38d0f8c5f496b9e42561dfc62fe", size = 182790 },
2100
+ { url = "https://pypi.tuna.tsinghua.edu.cn/packages/02/05/c68c5adbf679cf610ae2f74a9b871ae84564462955d991178f95a1ddb7dd/websockets-15.0.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:5d54b09eba2bada6011aea5375542a157637b91029687eb4fdb2dab11059c1b4", size = 182165 },
2101
+ { url = "https://pypi.tuna.tsinghua.edu.cn/packages/29/93/bb672df7b2f5faac89761cb5fa34f5cec45a4026c383a4b5761c6cea5c16/websockets-15.0.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3be571a8b5afed347da347bfcf27ba12b069d9d7f42cb8c7028b5e98bbb12597", size = 182160 },
2102
+ { url = "https://pypi.tuna.tsinghua.edu.cn/packages/ff/83/de1f7709376dc3ca9b7eeb4b9a07b4526b14876b6d372a4dc62312bebee0/websockets-15.0.1-cp312-cp312-win32.whl", hash = "sha256:c338ffa0520bdb12fbc527265235639fb76e7bc7faafbb93f6ba80d9c06578a9", size = 176395 },
2103
+ { url = "https://pypi.tuna.tsinghua.edu.cn/packages/7d/71/abf2ebc3bbfa40f391ce1428c7168fb20582d0ff57019b69ea20fa698043/websockets-15.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:fcd5cf9e305d7b8338754470cf69cf81f420459dbae8a3b40cee57417f4614a7", size = 176841 },
2104
+ { url = "https://pypi.tuna.tsinghua.edu.cn/packages/cb/9f/51f0cf64471a9d2b4d0fc6c534f323b664e7095640c34562f5182e5a7195/websockets-15.0.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ee443ef070bb3b6ed74514f5efaa37a252af57c90eb33b956d35c8e9c10a1931", size = 175440 },
2105
+ { url = "https://pypi.tuna.tsinghua.edu.cn/packages/8a/05/aa116ec9943c718905997412c5989f7ed671bc0188ee2ba89520e8765d7b/websockets-15.0.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:5a939de6b7b4e18ca683218320fc67ea886038265fd1ed30173f5ce3f8e85675", size = 173098 },
2106
+ { url = "https://pypi.tuna.tsinghua.edu.cn/packages/ff/0b/33cef55ff24f2d92924923c99926dcce78e7bd922d649467f0eda8368923/websockets-15.0.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:746ee8dba912cd6fc889a8147168991d50ed70447bf18bcda7039f7d2e3d9151", size = 173329 },
2107
+ { url = "https://pypi.tuna.tsinghua.edu.cn/packages/31/1d/063b25dcc01faa8fada1469bdf769de3768b7044eac9d41f734fd7b6ad6d/websockets-15.0.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:595b6c3969023ecf9041b2936ac3827e4623bfa3ccf007575f04c5a6aa318c22", size = 183111 },
2108
+ { url = "https://pypi.tuna.tsinghua.edu.cn/packages/93/53/9a87ee494a51bf63e4ec9241c1ccc4f7c2f45fff85d5bde2ff74fcb68b9e/websockets-15.0.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3c714d2fc58b5ca3e285461a4cc0c9a66bd0e24c5da9911e30158286c9b5be7f", size = 182054 },
2109
+ { url = "https://pypi.tuna.tsinghua.edu.cn/packages/ff/b2/83a6ddf56cdcbad4e3d841fcc55d6ba7d19aeb89c50f24dd7e859ec0805f/websockets-15.0.1-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0f3c1e2ab208db911594ae5b4f79addeb3501604a165019dd221c0bdcabe4db8", size = 182496 },
2110
+ { url = "https://pypi.tuna.tsinghua.edu.cn/packages/98/41/e7038944ed0abf34c45aa4635ba28136f06052e08fc2168520bb8b25149f/websockets-15.0.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:229cf1d3ca6c1804400b0a9790dc66528e08a6a1feec0d5040e8b9eb14422375", size = 182829 },
2111
+ { url = "https://pypi.tuna.tsinghua.edu.cn/packages/e0/17/de15b6158680c7623c6ef0db361da965ab25d813ae54fcfeae2e5b9ef910/websockets-15.0.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:756c56e867a90fb00177d530dca4b097dd753cde348448a1012ed6c5131f8b7d", size = 182217 },
2112
+ { url = "https://pypi.tuna.tsinghua.edu.cn/packages/33/2b/1f168cb6041853eef0362fb9554c3824367c5560cbdaad89ac40f8c2edfc/websockets-15.0.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:558d023b3df0bffe50a04e710bc87742de35060580a293c2a984299ed83bc4e4", size = 182195 },
2113
+ { url = "https://pypi.tuna.tsinghua.edu.cn/packages/86/eb/20b6cdf273913d0ad05a6a14aed4b9a85591c18a987a3d47f20fa13dcc47/websockets-15.0.1-cp313-cp313-win32.whl", hash = "sha256:ba9e56e8ceeeedb2e080147ba85ffcd5cd0711b89576b83784d8605a7df455fa", size = 176393 },
2114
+ { url = "https://pypi.tuna.tsinghua.edu.cn/packages/1b/6c/c65773d6cab416a64d191d6ee8a8b1c68a09970ea6909d16965d26bfed1e/websockets-15.0.1-cp313-cp313-win_amd64.whl", hash = "sha256:e09473f095a819042ecb2ab9465aee615bd9c2028e4ef7d933600a8401c79561", size = 176837 },
2115
+ { url = "https://pypi.tuna.tsinghua.edu.cn/packages/fa/a8/5b41e0da817d64113292ab1f8247140aac61cbf6cfd085d6a0fa77f4984f/websockets-15.0.1-py3-none-any.whl", hash = "sha256:f7a866fbc1e97b5c617ee4116daaa09b722101d4a3c170c787450ba409f9736f", size = 169743 },
2133
2116
  ]
2134
2117
 
2135
2118
  [[package]]
File without changes
File without changes
File without changes